Как получить последнюю непустую строку файла с помощью tail in Bash?
как получить последнюю непустую строку с помощью tail
под оболочкой Bash?
например, my_file.txt
выглядит так:
привет
hola
Бонжур!--10--> (пустая строка)
(пустая строка)
очевидно, если я это сделаю tail -n 1 my_file.txt
я получу пустую строку. В моем случае я хочу получить bonjour
. Как мне это сделать?
6 ответов
вы можете использовать Awk:
awk '/./{line=} END{print line}' my_file.txt
это решение имеет преимущество использования только одного инструмента.
Как насчет использования grep
сначала отфильтровать пустые строки?
$ cat rjh
1
2
3
$ grep "." rjh | tail -1
3
Если вы хотите опустить любые пробелы, то есть пробелы / вкладки в конце строки, а не только пустые строки
awk 'NF{p=}END{print p}' file
Если tail -r
недоступна и у вас нет egrep
, хорошо работает следующее:
tac $FILE | grep -m 1 '.'
как вы можете видеть, это комбинация двух предыдущих ответов.