Есть ли способ распечатать n-ю строку файла, считая с обратной стороны файла?Как напечатать n-ю строку с конца файла в bash?
Я знаю, как это сделать с передней стороны файла, но делать это с обратной стороны файла представляется более сложным.
Есть ли способ распечатать n-ю строку файла, считая с обратной стороны файла?Как напечатать n-ю строку с конца файла в bash?
Я знаю, как это сделать с передней стороны файла, но делать это с обратной стороны файла представляется более сложным.
Быстрый и простой способ: tail -n $n file | head -n 1
.
Более интересный способ с awk
является:
awk -v n=$n '{x[NR%n]=$0}END{print x[(NR+1)%n]}' file
Если у вас меньше n
линий, метод tail | head
напечатает первую строку файла, awk
путь будет печатать пустую строку.
Быстрая и грязная, сотый линия от конца:
tail -n 100 yourfile | head -n 1
Вы получите первую строку файла, если он имеет менее 100 строк.