Отрицательные аргументы голове / хвост

При рассмотрении таблицы данных чипсета существует только две плоскости дисплея и каналы дисплея (см. стр 78–79). Можно также смотреть на таблицы на стр 86–87. Так, Вы поразили аппаратное ограничение.

Вы можете получать его работа, если два из дисплеев отображают то же самое, с теми же самыми настройками (то же изображение, разрешение, частота обновления, битовая глубина, и т.д.).

13
23.05.2017, 15:40
3 ответа

Первые 12 строк можно удалить с:

tail -n +13

(Это означает вывод из 13-й строки.)

Некоторые реализации головки , такие как GNU головка, поддерживают:

head -n -12

, но это не стандартно.

tail -r file | tail -n +12 | tail -r

будет работать на тех системах, которые имеют хвост -r (см. также GNU tac), но являются неоптимальными.

Где n 1:

sed '$d' file

Можно также:

sed '$d' file | sed '$d'

удалить 2 строки, но это не оптимально.

Вы можете сделать:

sed -ne :1  -e 'N;1,12b1' -e 'P;D'

Но остерегайтесь, что это не будет работать с большими значениями n с некоторыми реализациями sed.

С помощью awk:

awk -v n=12 'NR>n{print line[NR%n]};{line[NR%n]=$0}'

Удалить m строки из начала и n из конца:

awk -v m=6 -v n=12 'NR<=m{next};NR>n+m{print line[NR%n]};{line[NR%n]=$0}'
19
27.01.2020, 19:53

Для удаления первых N строк и последних M строк можно использовать следующий способ.

С помощью N=5, M=7 и файла test.txt:

sed -n -e "6,$(($(wc -l < test.txt) - 7))p" test.txt

Команда печатает все строки от N+1 до LastLine-M.

Другой вариант - использовать python:

python -c 'import sys;print "".join(sys.stdin.readlines()[5:-7]),' < test.txt
2
27.01.2020, 19:53

Вы можете удалить последниеM(здесь M=100 )строк из файла с:

head -$(($(wc -l < foo.txt) - 100)) foo.txt > temp.txt
1
27.01.2020, 19:53

Теги

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