Некоторые картинки не загружаются из РФ и РК, используйте VPN.

понедельник, 27 февраля 2023 г.

Bash вывод строк ниже опеределенной

Банальная задача - вывести строки из файла от N до конца, но tail такое не может. Можно конечно заморочиться примерно так:

num_line=550
current_count_lines=`cat $file | wc -l`
let tail_count=$x-$num_line
tail -n $tail_count $file

Вполне рабочий вариант, если бы не одно но - мне надо вызывать его раз в 3-15 сек для обработки лога, который быстро растет и какова вероятность, что к моменту проведения всех рассчетов, количество строк в файле изменится?, а если измениться, то $tail_count выведет не те строки

И тут выясняется, что awk может решить поставленную задачу, дык еще и в одну строку:

awk "NR>$num_line" $file

Собственно вместо знака больше/меньше можно поставить равно, тогда такая конструкция

awk "NR=2" $file

Дает такой же результат как и эта:

head -n 2 $file | tail -n 1

Комментариев нет:

Отправить комментарий