Интерактивное удаление файлов, перечисленных с помощью путей в текстовом файле

Я пытаюсь в интерактивном режиме удалить файлы, перечисленные с их путями, в текстовый файл.

Команда, которую я пытаюсь сделать:

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 находится в текущем каталоге.

One Solution collect form web for “Интерактивное удаление файлов, перечисленных с помощью путей в текстовом файле”

В списке файлов используются концы строк CRLF вместо стандартного LF , поэтому в сообщении об ошибке появляется CRLF \r . Пытаться:

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

(Предполагая, что ваша оболочка имеет подстановку процесса, то есть ksh, bash или zsh.)

  • Разный вывод `find | xargs ls` для той же команды в разных версиях Ubuntu
  • cmd2 `cmd1` vs cmd1 | xargs cmd2
  • Объединение тысяч файлов:> vs >>
  • Выполнение одной и той же команды с разными аргументами параллельно
  • Как найти и скопировать файлы на основе расширения?
  • Удаление номеров из имен файлов
  • Как открыть несколько файлов из `find`?
  • Как использовать scp с xargs?
  • Используйте команду find для выполнения ряда команд
  • Передача нескольких аргументов в середине команды с помощью xargs
  • Отменить все переменные ENV, соответствующие _PROXY
  • Linux и Unix - лучшая ОС в мире.