【问题标题】:remove subsequent identical lines only when matching a pattern in bash仅在匹配 bash 中的模式时删除后续相同的行
【发布时间】:2023-03-06 22:45:01
【问题描述】:

这是我的 sh 输出的示例

abc
abc
abc
rty // uio
rty // uio
fgh
fgh jkl
...

我想要的输出是

abc
abc
abc
rty // uio
fgh
fgh jkl
...

我只想删除带有// 的双线之一。 所有重复的行(// 与否)都相互跟随。

我找不到cutawksed,甚至是sort -uuniq

【问题讨论】:

    标签: bash sh


    【解决方案1】:

    可能有一种更简单的方法,但这里是从 awk 开始的:

    $ awk '!/\/\// || /\/\// && !seen[$0]++' file
    abc
    abc
    abc
    rty // uio
    fgh
    fgh jkl
    ...
    

    【讨论】:

    • 请注意How to Answer 的“回答正确提出的问题”部分中关于“之前已多次提出并回答”的问题的要点。跨度>
    • @CharlesDuffy 仔细阅读问题,它与您链接的问题不重复。
    • 编辑标题以明确区分元素。正如最初提出的那样,这将是知识库中的一个“令人讨厌的麻烦”,会引起需要更通用答案的人们的注意,因为必须点击才能理解其中的区别。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2019-11-30
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多