【问题标题】:Using sed to delete everything from a colon on, up until a space character使用 sed 删除从冒号开始的所有内容,直到空格字符
【发布时间】:2023-04-02 23:28:01
【问题描述】:

文本文件的第一行包含数百个如下形式的字符串:

143362:2019111515391775

以空格分隔。即,

143362:2019111515391775 143760:2019111515391785 143020:2019111515391748

我想删除每个字符串中以冒号开头的部分(即从冒号删除,直到空格)。

sed 有没有一种优雅的方法来做到这一点?

【问题讨论】:

    标签: regex sed substitution


    【解决方案1】:

    你可以这样做:

    sed 's/:[^[:blank:]]*//g'
    

    这将删除每个冒号及其后面的任意数量的非空格。您输入的输出:

    143362 143760 143020
    

    【讨论】:

    • 完美!实际上,我意识到我用错了这个问题。是否可以对其进行编辑以删除冒号?
    • @ScottB。是的,只要没有任何其他答案.. 让我更新。
    • [:blank:] 也包括制表符,所以严格来说,[^ ] 表示非空格字符。另一种不太严格的解决方案是在 GNU sed sed 's/:\S*//g' file
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多