我怎样才能扭转文件中的行的顺序?

我想倒转文本文件(或标准输入)中行的顺序,保留每行的内容。

所以,即从以下开始:

foo
bar
baz

我想结束

baz
bar
foo

有没有一个标准的UNIX命令行工具?


BSD尾巴:

tail -r myfile.txt

参考:FreeBSD,NetBSD,OpenBSD和OS X手册页。


另外值得一提的是: tac (the,ahem,反向的cat )。 部分coreutils。

将一个文件翻转成另一个文件

tac a.txt > b.txt

有一些众所周知的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 ...

链接地址: http://www.djcxy.com/p/77061.html

上一篇: How can I reverse the order of lines in a file?

下一篇: How can I remove the first line of a text file using bash/sed script?