我正在编写一个小型的shell脚本,需要反转文本文件中的行。是否有标准的过滤命令可以做到这样的事情?
我的具体应用是,我正在获取Git提交标识符的列表,并且我想以相反的顺序处理它们:
git log --pretty=oneline work...master | grep -v DEBUG: | cut -d' ' -f1 | reverse
我想到的最好的方法是像这样实现 reverse
:
... | cat -b | sort -rn | cut -f2-
这个命令使用cat
对每一行进行编号,然后使用sort
以数字降序排序(导致整个文件倒过来),最后使用cut
删除不需要的行号。
以上方法适用于我的应用程序,但在普遍情况下可能会失败,因为 cat -b
只对非空行进行编号。
有更好、更通用的方法吗?
git log --reverse
。 - 13k