【发布时间】:2009-11-20 01:11:48
【问题描述】:
我有一个由我的工具生成的文本文件,其结构如下所示。
1 line text
(space)
multiple
lines
text
(space)
multiple
lines
text
nr 2
---------------------------------------------------------- (58 '-' characters)
different 1 line text
(space)
different
multiple
lines
text
(space)
different
multiple
lines
text
nr 2
----------------------------------------------------------
different 1 line text
(space)
different
multiple
lines
text
(space)
different
multiple
lines
text
nr 2
----------------------------------------------------------
(space)
每个文件以 1 行文本开头,以“-”符号分隔符和空格结尾。每个文件中有不同数量的节,并且“中间”的每个节都以“-”符号开始和结束。以下是我想要实现的目标。
multiple
lines
text
(space)
different
multiple
lines
text
(space)
different
multiple
lines
text
我想删除所有一个衬里、所有 58 个“-”字符分隔符和所有“第二个”多个衬里,并且每个部分中只有“第一个”多个衬里一个在另一个下一个用空格分隔。有人可以推荐如何在linux上做到这一点吗?任何建议都会有所帮助。
【问题讨论】:
-
谁投票决定关闭属于 SU? sed 是一种编程语言,无论多么原始,这是一个公认的先例。无论如何,最好用 awk/perl 解决方案来回答这个问题。
-
“(空格)”是指空格字符、换行符、空格(空格、换行符、制表符)还是其中一个或多个的倍数?
-
另外,在您想要的结果示例中,是否应该包含“nr 2”的行以与“每个部分只有'第二个'多个衬里”保持一致?跨度>
-
对不起,这是一个错字,我的意思是第一个多个衬里,而不是第二个......就像我写的输出示例一样