删除sed中以特定模式开头的所有单词

时间:2013-07-03 07:31:15

标签: regex sed makefile

我有这样的输入:

A.x: ksvbskv sdbvfv /a/b/c \
     vvsvr /a/b /a/b/m/d \
     hmnghmgh

我需要一个sed命令模式,删除以/a/b开头的所有单词,输出结果为:

A.x: ksvbskv sdbvfv \
     vvsvr \
     hmnghmgh

我已经将它用于Makefile目标。所以我可以修剪一些特定的值。

2 个答案:

答案 0 :(得分:4)

这样可以解决问题:

$ sed 's%/\ba/b[^ ]*%%g' file
A.x: ksvbskv sdbvfv  \
     vvsvr   \
     hmnghmgh

说明:

s      # Substitute 
%      # Delimiter
\b     # Word boundary
a/b    # Literal string
[^ ]*  # Zero or more characters that are not a space
%      # Delimiter
%      # Delimiter
g      # Global substitution

答案 1 :(得分:0)

试试这个...

$ sed 's%/\[a-b][^ ]*%%g' file