テキストファイルにリストされているファイルとそのパスを対話的に削除しようとしています。
私が試しているコマンドは次のとおりです。
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など)があるとします。)