awkで新しい行を印刷する方法

awkで新しい行を印刷する方法

各データセットが改行(\ n)でラップされたファイルから収集されたデータを印刷しようとしています。

パスワード:

awk '/mail:|fullName:|uid:/{s=s", "$0} END{print substr(s,3)}' dump2.txt

次のように出力します。

mail: [email protected] , fullName: Bogus Bogus, uid: 666  mail: [email protected] , fullName: Bogus2 Bogus2, uid: 667

希望の出力:

mail: [email protected] , fullName: Bogus Bogus, uid: 666 \n
mail: [email protected] , fullName: Bogus2 Bogus2, uid: 667 \n

ベストアンサー1

努力する

 awk '/mail:|fullName:/{s=s", "$0} /uid:/ {s=s", "$0 "\n" ;} END{printf substr(s,3)}' dump2.txt

フィールドに%がないと仮定

その他のソリューション

 awk '/mail:|fullName:/{s=s", "$0} /uid:/ {print substr(s,3) ", "$0 ;s=""} ' dump2.txt

uid:が最後であるとします。

おすすめ記事