ls |はい

ls |はい

すぐにファイルセットを削除したいです。

ls | egrep \^New

出力は予想通りです。

New 1
New 2
New 3

しかし、パイプラインを続ける

| xargs -L rm

スペースで区切られた入力を削除してみてください。

rm: New: No such file or directory
rm: 1: No such file or directory

私は何を見逃していますか?

答え1

解析されないlsこれはトリックを行う必要があります:

rm New*

xargs引数がデフォルトで空白に分割され、などで動作するため、メソッドはrm失敗します。改行文字を分割することでこの問題を解決できますが、改行文字を含むファイル名では機能しません。New1New2

答え2

はい、そうです。xargsファイル名をスペースで区切ってください。 GNUを使用している場合は、xargsこのオプションを使用して改行文字を区切り文字として使用できます-d。例:

ls | egrep \^New | xargs -d '\n' rm

関連情報