【问题标题】:substitute words on a line only before first delimeter using sed or awk仅在使用 sed 或 awk 的第一个分隔符之前替换一行上的单词
【发布时间】:2016-01-04 02:13:38
【问题描述】:

如何在第一次出现分隔符(此处为正斜杠)之前删除模式

例子

abc/def/ghi/kjl

应该变成

def/ghi/kjl

需要使用awksed

【问题讨论】:

    标签: awk sed delimiter substitution


    【解决方案1】:

    使用 sed

    sed -r 's_([^/]+/)__'
    

    与 awk 类似

    awk '{sub(/[^/]+\//,"")}1'
    

    但是,cut 是完成这项任务最合适的工具

    cut -d/ -f2- 
    

    【讨论】:

      【解决方案2】:
      echo "abc/def/ghi/kjl" | awk -F/ '{$1="";sub(/^ /,"")}1' OFS=/
      def/ghi/kjl
      

      【讨论】:

        【解决方案3】:

        谢谢!

        剪切看起来是最好的答案。

        我还添加了补语。它可以满足我的需要

        cut -d / -f 1 --complement

        【讨论】:

        • 投反对票,因为这根本不能回答 OPs 的问题——他特别明确地说 Need to use awk or sed
        猜你喜欢
        • 2019-03-22
        • 1970-01-01
        • 2017-12-06
        • 2022-01-27
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多