【问题标题】:How to remove the last character from all lines but only if it is a certain character如何从所有行中删除最后一个字符,但前提是它是某个字符
【发布时间】:2014-03-24 10:40:00
【问题描述】:

我有这种形式的数据

Kure|Hiroshima
Kure|Hiroshima
Kure|Hiroshima
NO MATCHING
Aachen|
Darmstadt
Mulheim
Aachen|

并且我只想删除最后一个字符,如果它是一个管道 (|)。

想要的输出

Kure|Hiroshima
Kure|Hiroshima
Kure|Hiroshima
NO MATCHING
Aachen
Darmstadt
Mulheim
Aachen

提前致谢

【问题讨论】:

    标签: linux string sed


    【解决方案1】:

    您可以为此使用sed

    $ sed 's/|$//' file
    Kure|Hiroshima
    Kure|Hiroshima
    Kure|Hiroshima
    NO MATCHING
    Aachen
    Darmstadt
    Mulheim
    Aachen
    

    它会查找|$(意思是“行尾”)并将其删除。

    请注意,您可以使用sed -i,以防您想要进行就地编辑。

    【讨论】:

    • 哦,这很快,而且效果很好!!谢谢:D
    • 哈哈一点 :) 它解决了你的问题吗,@user3454951?由于您是新来的,如果您的问题已经解决,请不要忘记将答案标记为已接受。您可以单击答案旁边的复选标记将其从空心切换为绿色。如有任何疑问,请参阅Help Center > Asking
    【解决方案2】:

    awk 版本:

    awk '{sub(/\|$/,"")}1' file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多