【发布时间】:2014-07-14 19:03:12
【问题描述】:
最好使用 awk,但其他脚本也可以。 ("{{{1" 行尾用于 vim 折叠,应该与所需的输出无关。)示例中的数据来自在线聊天室,我将其粘贴到文本文件中。
Begin file contents:
-----------------------------------------------
/mysql unauth'd user on show processlist, plus db conn error in a site {{{1
1:05
Gary
can you ck belljar20 instance?
1:06
Justin looks like reverse dns issue
-----------------------------------------------
/mysql pingtimes to db server solved by adding domain to /etc/hosts on db server {{{1
per internal wiki
...
-----------------------------------------------
/php54 back to php52 with manual fix for https {{{1
Gary
can u force mkp44aaa.net to bind to an ip address?
...
-----------------------------------------------
:End file contents
记录,也就是块(行数不等)以一个单词“/category”作为第一行的第一个单词开始,在一个正斜杠“/”之后,并以大约 40 行结束破折号。以上,在 3 个块示例中,有两个类别为“/mysql”,一个类别为“php54”。
在上面的示例中,我希望对输出进行排序,以便两个“/mysql”类别块在排序输出中彼此相邻。
因此,本质上,只需按类别名称对块进行排序。
我已经看到了解决方案的许多组成部分,但似乎无法找到一个足以让我适应它的部分。
【问题讨论】:
-
你有没有尝试过?
-
不在这个,因为我找不到一个我理解并觉得适用的例子。我有一个 awk 命令,可以在我每天添加新行后有选择地应用折叠标记,所以至少要进去尝试一下。头疼了几个小时。