次の条件でラインを印刷してみてください。
入力例
Hello:world
Hello:worlds:
Hello:world:example
努力中 -
awk -F":" print $1 " + " $2 && if($3 != "") { " + " $3 }
したがって、予想される出力は次のようになります。
Hello + world
Hello + worlds
Hello + world + example
ベストアンサー1
空きスペースだけに気をつければ最後フィールドを使用している場合は、sed
以下を使用する方が短くなります。
$ sed 's/:$//; s/:/ + /g' file
Hello + world
Hello + worlds
Hello + world + example
試したコマンドはawk
次のように保存できます。
$ awk -F":" '{ print $1 " + " $2 ($3 != "" ? " + " $3 : "") }' file
Hello + world
Hello + worlds
Hello + world + example
OFS
または(出力フィールド区切り記号)を使用して、次の操作を行います。
$ awk -F":" -v OFS=' + ' '{ print $1, $2 ($3 != "" ? OFS $3 : "") }' file
Hello + world
Hello + worlds
Hello + world + example
また否定的なテストを取除いて下さい:
$ awk -F":" -v OFS=' + ' '{ print $1, $2 ($3 == "" ? "" : OFS $3 ) }' file
Hello + world
Hello + worlds
Hello + world + example