我正在编写一个小shell脚本,需要反转文本文件的行。有没有一个标准的过滤器命令来做这样的事情?
我的具体应用是我得到一个Git提交标识符的列表,我想以相反的顺序处理它们:
git log --pretty=oneline work...master | grep -v DEBUG: | cut -d' ' -f1 | reverse
我想出来的最好是像这样实现反向:
... | cat -b | sort -rn | cut -f2-
这将使用cat对每一行进行编号,然后按数字顺序进行排序(最终反转整个文件),然后剪切以删除不需要的行号。
上面的工作适用于我的应用程序,但是在一般情况下可能会失败,因为cat -b只能编号非空行。
有没有更好的,更一般的方法来做到这一点?
在
GNU coreutils年,有
tac(1)