Есть хорошо известные приемы sed :
# reverse order of lines (emulates "tac")
# bug/feature in HHsed v1.5 causes blank lines to be deleted
sed '1!G;h;$!d' # method 1
sed -n '1!G;h;$p' # method 2
(Объяснение: добавьте не начальную строку для хранения буфера, измените строку и сохраните буфер, распечатайте строку в конце)
Альтернативно (с более быстрое выполнение) из однострочников awk :
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' file*
Если вы не помните этого,
perl -e 'print reverse <>'
В системе с утилитами GNU другие ответы проще, но не весь мир GNU /Linux...
Также стоит упомянуть: tac
(гм, реверс кошки
]). Часть coreutils .
tac a.txt > b.txt
Попробуйте следующую команду:
grep -n "" myfile.txt | sort -r -n | gawk -F : "{ print $2 }"