Bashシェルの私のコマンドは次のように出力されます。
username
country
しかし、印刷物を次のように修正したいと思います。
username - country
ありがとうございます。
ベストアンサー1
私は次のことをします:
$ seq 6 | awk '{printf "%s", sep $0; sep = " - "}; END {if (NR) print ""}'
1 - 2 - 3 - 4 - 5 - 6
または:
$ seq 6 | paste -d ' - \n' - /dev/null /dev/null -
1 - 2
3 - 4
5 - 6
または:
$ seq 5 | sed '$!N;s/\n/ - /'
1 - 2
3 - 4
5
2行の出力であれば、次のようにすることもできます。
$ seq 2 | { IFS= read -r a; IFS= read -r b; printf '%s\n' "$a - $b"; }
1 - 2
シェルにはbash
where 、同じread
ものprintf
が組み込まれており、別のコマンドを実行する必要はありません。この処理を実行するために、追加のプロセス生成をbash
保存するオプションを設定できますlastpipe
(非対話型シェルインスタンスのみ)。