csh - xargs コマンド

xargs コマンドは標準入力やファイルからリストを読み込み、コマンドラインを作成し実行する。

たとえば、ファイル「filelist」にファイル名のリストが記録されているとする。
そのファイルに記録されたファイル名それぞれの内容を出力するには、以下のように書く。

cat filelist | xargs cat


ls コマンドで返ってきたファイルの内容を出力することも可。

ls test* | xargs cat


xargs コマンドは通常、引数がコマンドの最後に追加されていく。

引数が指定される場所を変更したいときは -I オプションを使う。

オプションは「-I ReplaceString」の形式で指定する。
ReplaceString が置換文字列を表す。
置換文字列は任意の文字列でよい。

たとえば次のように書くと、{} が置換文字列となる。

ls test* | xargs -I {} cat {} >> ret.txt


ls test* の実行結果が以下の場合

test1.txt
test2.txt
test3.txt

次のコマンドが実行されることになる。

cat test1.txt >> ret.txt
cat test2.txt >> ret.txt
cat test3.txt >> ret.txt

コマンドに指定したファイルが存在しなくても、後続のコマンドは実行されていく。

たとえば2番目のコマンドにある test2.txt が存在しなくても、test1.txt と test3.txt の内容は ret.txt に書き込まれる。

いいなと思ったら応援しよう!