хвост / голова вся линия, кроме X последняя / первая линия

4635
network

например у меня есть этот файл:

cat myfile 1 2 3 4 5 

Я хочу напечатать все строки, кроме первых 2-х строк. вывод должен быть таким:

tail -n $(( $(wc -l myfile | awk '') - 2 )) myfile 3 4 5 

Да, это правильно. но есть проблема, у нас есть 5 строк в этом примере файла правильно? если я использую больше 5 в этой команде, вывод должен быть пустым, но это не так !!!

tail -n $ (($ (wc -l myfile | awk '') - NUMBER )) myfile

этот выход должен быть пустым, но это не так

tail -n $(( $(wc -l myfile | awk '') - 8 )) myfile  1 2 3 4 5 

myfile может содержать X строк ... Спасибо за помощь

0

1 ответ на вопрос

3
choroba

tail -n+3 выводит последние строки, начиная с третьей.

номер строки являются переменными, и я не знаю, сколько строк. хочу сохранить все, кроме последних 3 строк network 7 лет назад 0
Это не то, что вы описали в вопросе, но `head -n-3` должен дать вам то, что вам нужно. choroba 7 лет назад 0
У меня есть вопрос редактирования. но этот файл является выходом скрипта, и мы не знаем, сколько строк ... network 7 лет назад 0
Вам не нужно знать количество строк. choroba 7 лет назад 0
попробовал это не то, что мне нужно, например, если я хочу, чтобы все строки, кроме 8 строк, но у меня есть только 5 строк. поэтому вывод должен быть пустым: tail -n-8 myfile 1 2 3 4 5 network 7 лет назад 1
@behnam: используйте `+` с `tail`, а не` -`, как я. choroba 7 лет назад 0