Удаление первых двух строк файла с использованием BASH или awk, sed или чего-либо еще

Эй, я просто написал это.

Теперь вы можете использовать

или так.

Наслаждайтесь.

29
задан Sam 26 October 2014 в 18:26
поделиться

4 ответа

Используйте tail:

tail -n+3 file

со страницы руководства:

   -n, --lines=K
          output the last K lines, instead of the last 10; or use  -n  +K
          to output lines starting with the Kth
64
ответ дан RobS 26 October 2014 в 18:26
поделиться

Как насчет:

tail +3 file

ИЛИ

awk 'NR>2' file

ИЛИ

sed '1,2d' file
27
ответ дан anubhava 26 October 2014 в 18:26
поделиться

Ты почти у цели. Попробуйте вместо этого:

awk 'NR > 2 { print }' myfile

awk основывается на правилах, и правило выглядит голым (то есть без скобок) перед тем, как блок будет выполнен, если он пройдет.

Также, как указал Jaypal, в awk, если все, что вы хотите сделать, это напечатать строку, соответствующую правилам, вы можете даже пропустить действие, упрощая, таким образом, команду:

awk 'NR > 2' myfile
22
ответ дан Chris J 26 October 2014 в 18:26
поделиться

awk основан на pattern{action} утверждениях. В вашем случае pattern - это NR>2, а action, которое вы хотите выполнить, - print. Этот action также является default action из awk.

Таким образом, хотя

awk 'NR>2{print}' filename

будет работать нормально, вы можете сократить его до

awk 'NR>2' filename.

6
ответ дан jaypal singh 26 October 2014 в 18:26
поделиться
Другие вопросы по тегам:

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