【 xargs 】コマンドと【 | 】パイプの違い
【 xargs 】コマンドとは
標準出力結果を実行したいコマンドの前に記述することで
結果を引数として受け取りコマンドを実行することができる
例)
コマンド1 | xargs コマンド2
【 | 】パイプとは
標準出力結果を次のコマンドに渡す
例)
コマンド1 | コマンド2
xargsの必要性が分からなかったので両者の違いを検証
検証環境
ディレクトリ:
/home/ubuntu/project/sample
配下ファイル
./search.txt
ファイル内容
hogehoge
実行コマンド
1). find . -name 'search.txt' | xargs grep hoge
2). find . -name 'search.txt' | grep hoge
結果
2の結果が出てこないのでなにを渡しているのかechoで確認
catで確認
1の【xargs】を使った場合は引数として変換して渡しているため
echoでfindの結果のファイル名、catでファイルの内容が出力されているようです。
2の【 | 】パイプオンリーのときは引数変換せずに結果を塊として渡しているため
echoで無、catで塊の内容(./search.txt)が出力されているようです。
今更感はありますがlinuxコマンドは使わないと忘れますね;;