テキストファイルにリストされているパスを持つファイルを対話的に削除する

テキストファイルにリストされているパスを持つファイルを対話的に削除する

テキストファイルにリストされているファイルとそのパスを対話的に削除しようとしています。

私が試しているコマンドは次のとおりです。

xargs rm -i <filelist.txt

私が得るエラーは次のとおりです。

rm cannot remove 'directory1/directory2/filename.extension\r': No such file or directory.  

ファイル名の末尾に追加された表現に問題があるようですが、\rそれが何を意味するのかわかりません。

私も次のことを試しました。

xargs -rd '\n' --arg-file=filelist.txt rm -i --

結果は同じです。

filelist.txtファイルは現在のディレクトリのdirectory1/directory2/filename.extension 場所の形式で一覧表示されます。directory1

答え1

ファイルリストはCRLF非標準行末を使用しているため、エラーメッセージがLF表示されます。\r努力する:

xargs -rd '\n' --arg-file=<(<filelist.txt tr -d '\r') rm -i --

(シェルにプロセスの交換(ksh、bash、zshなど)があるとします。)

関連情報