bash – 如何反转文本块的顺序
发布时间:2020-12-16 01:14:18 所属栏目:安全 来源:网络整理
导读:如何仅使用sed和cat等bash命令恢复某些文本块的顺序?我想要的是像tac,但它不是逐行操作,而是逐块操作.例: 从 /Section 3/RabbitsDogsCats/Section 2/EaglesMice/Section 1/DogsRabbitsLemmings 至 /Section 1/DogsRabbitsLemmings/Section 2/EaglesMice/Se
如何仅使用sed和cat等bash命令恢复某些文本块的顺序?我想要的是像tac,但它不是逐行操作,而是逐块操作.例:
从 /Section 3/ Rabbits Dogs Cats /Section 2/ Eagles Mice /Section 1/ Dogs Rabbits Lemmings 至 /Section 1/ Dogs Rabbits Lemmings /Section 2/ Eagles Mice /Section 3/ Rabbits Dogs Cats 在某些文件中,块的开头用斜杠标记,如上例所示.在其他情况下,块仅通过它们之间存在一个或多个空行来标记.
在emacs中,您可以使用sort-paragraph命令:
按Ctrl-xhMeta-xsort-paragraphsEnter 在vim:https://superuser.com/questions/365094/sort-file-per-paragraph-in-vim 使用基本的unix工具: awk -F'n' -vRS='' -vOFS=',' '{$1=$1}1' input.txt | sort | tr ',' 'n' | sed 's@^/@n/@' 我使用awk将数据转换为csv,然后对csv进行排序,最后我将csv转换回list样式. 结果: /Section 1/ Dogs Rabbits Lemmings /Section 2/ Eagles Mice /Section 3/ Rabbits Dogs Cats 编辑:对不起,我没有仔细看你的问题.您可以将sort命令更改为tac以反转顺序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |