我怎样才能扭转文件中的行的顺序?
我想倒转文本文件(或标准输入)中行的顺序,保留每行的内容。
所以,即从以下开始:
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?