シェルワンライナー #11
答え
cat gijiroku.txt | xargs -n2 | sed 's/^すず/鈴木/;s/^さと/佐藤/;s/^やま/山田/;s/ /:/;s/$/\n/;'
詳細
xargsコマンドの-n2オプションについて
xargs
コマンドは、標準入力から受け取ったデータを、引数として他のコマンドに渡すために使用される。-n
オプションは、xargs
が一度に渡す引数の最大数を指定するために使用される。
-n2
オプションは、xargs
が他のコマンドに一度に渡す引数の最大数を2に制限することを意味する。これにより、xargs
が一度に処理するアイテムの数が2つに制限される。
例えば、以下のようなコマンドがある。
echo "1 2 3 4 5 6" | xargs -n2
このコマンドは、次のような出力を生成する。
1 2 3 4 5 6
echo
コマンドで1 2 3 4 5 6
という文字列を出力し、それをxargs -n2
に渡している。
xargs
は、一度に2つのアイテムを処理するように指定されているため、入力文字列を2つのアイテムごとに分割し、それぞれのペアを別々の行に表示する。
-n2
オプションは、例えば一度に処理できるアイテム数に制限があるコマンドを実行する際に役立つ。これにより、xargs
を使って効率的にデータを処理できるようになる。
sedの$
について
sedコマンド内の$
は、行の終わりを示す特殊なメタ文字である。これを使用して、行末にマッチさせることができる。
例えば、s/$/\n/
コマンドは、各行の終わりに改行文字を挿入する操作を行う。