С помощью awk вы можете использовать ключевое слово NR и сделать что-то вроде этого:
awk 'NR<50{print}NR>=50{<code for lines >=50>}'
или
awk 'NR<50{print;next;}{<codes for lines >=50>}'
Пример: я хочу сохранить 3 первые строки, суммы значений дляостальные.
Ввод:
Hello World1
Hello World2
Hello World3
1;2;3;4
5;6;7;8
Код:
awk -F';' 'NR<4{print;next}{result=0;for(i=1;i<=NF;i++){result += $i}; print result}' test.txt
Результат:
Hello World1
Hello World2
Hello World3
10
26
Проще на примере, который выпри условии:
awk -F\; 'NR<=10;(NR>10)&&($5 ~ /\//)' file
напечатает первые десять строк и все остальные строки, где $ 5 удовлетворяет /\//