【发布时间】:2012-07-17 04:57:42
【问题描述】:
我有一个文本文件。如果有多个以@开头的连续行,我想删除所有这些行,除了最后一次出现@的行。
例如,假设我有输入文件:
abc
@abc
@def
333
@asd
@poi
@789
输出应该是:
abc
@def
333
@789
【问题讨论】:
-
我不认为你可以用 sed 来做到这一点,因为它可以单独处理每一行输入
-
@poncha 将它与 tr 一起使用——请参阅下面的答案。我刚刚发现了 tr,但它非常有用。
-
@Kasapo 感谢您的提示...但是您需要将其替换为文本中不确定出现的一些字符...不是吗?
-
不,只是使用一个空间并计划它......好吧,我想如果保留换行符非常重要,那么是的,你可能必须选择一些时髦的角色(我更喜欢元我确定文本文件中不存在的字符,或三重@signs或三重管道)
-
我认为 awk 将是这里的答案......