今号では、xargs コマンドの便利な使い方についてご紹介します!
xargs コマンドとは
xargs コマンドは、標準出力やファイルからリストを読み込み、任意のコマンドに引数として渡します。
あるコマンドの実行結果や出力内容をパイプ (|) で xargs コマンドに渡し、別のコマンドの引数として使用することができます。
xargs コマンドを使用すると、複数の作業が 1行のコマンドで実行できるため、非常に便利です。
コマンドの実行結果を引数として渡す
例として、xargs を使用してカレントディレクトリ配下にあるすべてのファイルの行数を一気にカウントしてみます。
現在、カレントディレクトリには 3つのファイル (text1.txt、text2.txt、text3.txt) があり、各ファイルの行数はすべて 3行であるとします。
$ ls text1.txt text2.txt text3.txt $ less text1.txt $ cat text1.txt a b c $ cat text2.txt a b c $ cat text3.txt a b c
この時、xargs を使用すると ls コマンドの実行結果 (カレントディレクトリ配下にあるすべてのファイル) に対し、wc -l コマンドを一度に実行します。
このように、複数の操作を 1つのコマンドで実行することができるようになります。
$ ls | xargs wc -l 3 text1.txt 3 text2.txt 3 text3.txt 9 合計
現在、カレントディレクトリには 3つのファイルがあります。
このファイル数を xargs コマンドを使用して数える場合、下記のようなコマンドになります。
$ ls text1.txt text2.txt text3.txt
ファイルの内容をを引数として渡す
先ほどはコマンドの実行結果を xargs に渡していましたが、ファイルの内容を xargs に渡すこともできます。
次の例では、あるファイルの内容を利用して、新たなファイルを一気に作成します。
$ cat text4.txt text4-1.txt text4-2.txt text4-3.txt
text4.txt という新たなファイルを作成し、text4-1.txt、text4-2.txt、text4-3.txt という 3行の内容を追加しました。
これらをファイル名として、新たなファイルを一気に作成します。
$ cat text4.txt | xargs touch $ ls -1 text1.txt text2.txt text3.txt text4-1.txt text4-2.txt text4-3.txt text4.txt
おわりに
いかがでしたでしょうか。
本日ご紹介したものはほんの一例ですが、例のように、複数の操作を一度に実行できるところが xargs の便利な点です。
ぜひ、日頃の業務にご活用いただき、作業の効率化に役立てていただければと思います!