区切り文字の前にパターンを追加するコマンドを探しています。
私のとげ:
1 |Chris|ubuntu
これは私の区切り文字であり、|
この入力で文字列を生成したいと思います。
出力
1 = ID and Chris = Name and Ubuntu = OS
時には私の入力に2つの値しかありません。仮定すると、2 | Ram
値があり、区切り文字がないため、次のように印刷する必要があります。
2=ID and Ram=Name
だから、field1 + "and" + field2 + "and" + field3
。入力文字列でfield3が使用できない場合に使用されますfield1 + "and" + field2
。
ベストアンサー1
awk -F '|' '
{ printf("%d = ID and %s = Name", $1, $2) }
NF == 3 { printf(" and %s = OS", $3) }
{ printf("\n") }' file
これは生成されます
1 = ID and Chris = Name and ubuntu = OS
2 = ID and Ram = Name
与えられたデータについて。このawk
コードは最初の2つのフィールドをprintf
フォーマットテンプレートに挿入します。 3番目のフィールドが利用可能な場合、オペレーティングシステムの部分は同じ行に出力されます。その後、行は改行文字で終わります。