grepでフィルタした結果を他のコマンドの引数として使う

Published
2022-10-18
Author
ykich
Tags

よく忘れるのでメモします。

リストするコマンドの例としてterraform state list コマンドを使用しています。

リスト結果をgrepでフィルタして、1行ごとにecho を実行する場合

$ terraform state list | grep aws_nat_gateway| xargs -L 1 terraform state show


パイプした結果を使う位置を調整したい場合

$ tf state list | grep aws_nat_gateway| xargs -I {} echo {}

以下も同義。

$ tf state list | grep aws_nat_gateway| xargs -i echo {}


ls -l コマンドでファイル一覧を出力し、gawkでファイル名を出力、一行ごとにcatしていく場合

$ ls -l | grep terraform | gawk '{ print $9}' | xargs -L 1 cat

このユースケースであれば、find -exec コマンドを使ったほうが早いですね。

参考