xargsとgrepの違いについてよくわからないので教えてください。
例えば、カレントディレクトリにa.txt, b.txtが存在しているとします。
(OSはmacOSで試しています。)
その状態で、パイプを使用してfindとrmを繋ぐと、上手くいきません。
$ find . -regex .*[a-z].txt | rm -v usage: rm [-f | -i] [-dPRrvW] file ... unlink file
一方でxargsを使用してrmの引数にfindの結果を加えると、上手くいきます。
$ find . -regex .*[a-z].txt | xargs -t rm -v rm -v ./a.txt ./b.txt ./a.txt ./b.txt
私の理解は以下です。おそらく何か大きな勘違いしているのだと思います。。。
ー私の理解ーーーーーーーーーーーーーーーーーーーーーーーーーーー
rmを普段使う時って、標準入力から削除対象のファイル引数として渡しますよね。。なので、パイプでfindのstdoutをrmのstdinに繋いであげれば、findの結果出力されたファイル群を削除してくれるはず。。。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
xargsやパイプの仕組みに詳しい方、教えて頂けないでしょうか??
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。