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