Как удалить первые две строки и последние четыре строки из текстового файла в bash?


Я пытаюсь удалить первые две строки и последние четыре строчки из моих текстовых файлах. Как я могу сделать это с Баша?

4 51

4 ответа:

вы можете комбинировать хвост и глава:

$ tail -n +3 file.txt | head -n -4 > file.txt.new && mv file.txt.new file.txt

голова и хвост

cat input.txt | tail -n +3 | head -n -4

Sed Решение

cat input.txt | sed '1,2d' | sed -n -e :a -e '1,4!{P;N;D;};N;ba'

Это самый быстрый способ я нашел:

sed -i 1,2d filename

вы можете вызвать редактор ex из командной строки bash, используя следующий пример. Обратите внимание, что он использует документ чтобы завершить список команд для ex.

ex text.file << EOF
1,2d
$
-3,.d
x
EOF