grepでフィルタした結果を他のコマンドの引数として使う
よく忘れるのでメモします。
リストするコマンドの例として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 コマンドを使ったほうが早いですね。