知っておくとちょっと便利!xargs コマンドの便利な使い方

今号では、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 の便利な点です。
ぜひ、日頃の業務にご活用いただき、作業の効率化に役立てていただければと思います!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

2人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です