Удаление первой и последней строки или записи из файла с помощью sed

Я хочу удалить первую и последнюю строку из файла

file1 code:

H|ACCT|XEC|1|TEMP|20130215035845|

849002|48|1208004|1

849007|28|1208004|1

T|2

После удаления выход должен быть

849002|48|1208004|1

849007|28|1208004|1

Я пробовал метод ниже, но должен запустить его 2 раза, я хочу, чтобы одно liner-решение удалялось за один раз!

sed '1,1d' file1.txt  >> file1.out
sed '$d' file1.out  >> file2

Пожалуйста, предложите один код лайнера....

Ответ 1

Как насчет:

sed '$d' < file1.txt | sed "1d"

Ответ 2

Вы можете использовать ;

sed '1d; $d' file

Ответ 3

Использовать разделитель команд

В sed вы можете отделить команды с помощью точки с запятой. Например:

sed '1d; $d' /path/to/file

Ответ 4

Попробуйте sed -i '1d;$d' /path/to/file

Ответ 5

awk 'NR>2{print v}{v=$0}'

Начиная с строки 3, печатайте предыдущую строку каждый раз. Это означает, что первая и последняя строки не будут напечатаны.