Найдите файл и удалите некоторые строки в нем

Как я могу найти определенный файл и затем удалить некоторые строки из него с помощью терминала в одной строке?

например, Я хочу найти file.txt в моем некотором определенном каталоге и затем я хочу удалить строки от 5 до 10 в нем. Действительно ли возможно сделать это с помощью однострочной команды?

3
задан 3 January 2017 в 01:05

1 ответ

Вы могли использовать...

find /path/to/specific/directory -maxdepth 1 -type f -name "file.txt" -exec sed -i.bak '5,10 d' '{}' \;

Объяснение:

  • -maxdepth 1 не смотрят ни в каких подкаталогах указанного каталога
  • -type f, только находят файлы, не, каталоги
  • -exec делают следующая команда в найденные файлы
  • sed '5,10 d' удаляет строки от 5 до 10
  • -i.bak, изменяют сам файл вместо того, чтобы печатать к stdout, но делают резервную копию исходного файла с расширением .bak

РЕДАКТИРОВАНИЕ : хотя на самом деле, если Вы знаете точно, где файл и что он назвал, можно, очевидно, сделать

sed -i.bak '5,10 d' /path/to/file.txt

глупый меня...

3
ответ дан 1 December 2019 в 16:21

Другие вопросы по тегам:

Похожие вопросы: