Хвост / голова вся линия, кроме X последняя / первая линия
Например у меня есть этот файл:
cat myfile
1
2
3
4
5
Я хочу напечатать все строки, кроме первых 2-х строк. вывод должен быть таким:
tail -n $(( $(wc -l myfile | awk '{print $1}') - 2 )) myfile
3
4
5
Да, это правильно. но есть проблема, у нас есть 5 строк в этом примере файла правильно? если я использую больше 5 в этой команде, вывод должен быть пустым, но это не так!!!
tail -n $ (($ (wc -l myfile | awk '{print $ 1}') - NUMBER)) myfile
этот выход должен быть пустым, но это не так
tail -n $(( $(wc -l myfile | awk '{print $1}') - 8 )) myfile
1
2
3
4
5
myfile может содержать X строк... Спасибо за помощь
2 ответа
Я знаю, что это старо, но для потомков.
учитывая ввод (как опубликовано ОП),
cat << EOF > myfile
1
2
3
4
5
EOF
вы можете решить проблему с помощью awk
awk 'FNR > 2 {print $1}' myfile
даст желаемый результат
3
4
5
протестировано с версией awk (GNU Awk 4.1.4, API: 1.1 (GNU MPFR 4.0.1, GNU MP 6.1.2))