Вопрос по bash, linux – Как удалить первые две строки и последние четыре строки из текстового файла с помощью bash?

55

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

Следующее может помочь вам удалить строки в конце файла:http://stackoverflow.com/questions/4881930/bash-remove-the-last-line-from-a-file Linger

Ваш Ответ

4   ответа
17

Head and Tail

Sed Solution

cat input.txt | sed '1,2d' | sed -n -e :a -e '1,4!{P;N;D;};N;ba'
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededcat: tail -n +3 input.txt | ...Error: User Rate Limit Exceededsed).
Error: User Rate Limit Exceeded
9

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

sed -i 1,2d filename
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
-i extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero- length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
Error: User Rate Limit Exceeded-iError: User Rate Limit ExceededsedError: User Rate Limit Exceeded
77

хвост а такжеголова:

$ tail -n +3 file.txt | head -n -4 > file.txt.new && mv file.txt.new file.txt
Error: User Rate Limit Exceededtail -n +3Error: User Rate Limit Exceededhead -n -4Error: User Rate Limit Exceededinvalid number of linesError: User Rate Limit ExceededheadError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded rebca
Error: User Rate Limit Exceededcat.
Error: User Rate Limit Exceeded$ pv file.txt | tail -n +3 | head -n -4 > file.txt.new && mv file.txt.new file.txtError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

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

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

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