Как я могу найти определенный файл и затем удалить некоторые строки из него с помощью терминала в одной строке?
например, Я хочу найти file.txt
в моем некотором определенном каталоге и затем я хочу удалить строки от 5 до 10 в нем. Действительно ли возможно сделать это с помощью однострочной команды?
Вы могли использовать...
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
глупый меня...