Rin*_*nke 2 unix shell awk posix
使用shell命令,我想要反转文本文件的行,不包括标题行.
Number,Letter,Person
1,a,Alice
2,b,Bob
3,c,Claire
Run Code Online (Sandbox Code Playgroud)
应该成为
Number,Letter,Person
3,c,Claire
2,b,Bob
1,a,Alice
Run Code Online (Sandbox Code Playgroud)
我在寻找两个 "就地"解决方案(修改原文件)和流媒体解决方案(从stdin读取和打印结果原来的文件到标准输出).
理想情况下,命令或脚本与POSIX兼容,但其他解决方案也可能很有趣.一个oneliner会很好.
我也对任何解决方案的性能/复杂性感兴趣.
这是awk
执行此操作的命令:
awk '{a[NR]=$0} END{print a[1]; for (i=NR; i>1; i--) print a[i]}' file
Number,Letter,Person
3,c,Claire
2,b,Bob
1,a,Alice
Run Code Online (Sandbox Code Playgroud)
这里a[1]
代表标题记录.关联数组中的剩余条目a
表示索引为记录号的行.
或者,使用head, tail, cat
:
{ head -1 f && tail -n +2 file | tac; } > file._tmp && mv file._tmp file
Number,Letter,Person
3,c,Claire
2,b,Bob
1,a,Alice
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
82 次 |
最近记录: |