这个sed命令的含义是什么? sed's%^。* / %%'

时间:2010-08-18 03:04:23

标签: linux bash sed

我看到了一个bash命令sed 's%^.*/%%'

通常,sed的常用语法是sed 's/pattern/str/g',但在此版本中,s%^.*部分使用了s 's/pattern/str/g'部分。

我的问题:
s%^.*是什么意思?
%%的第二部分中sed 's%^.*/%%'的含义是什么?

2 个答案:

答案 0 :(得分:11)

%是一个替代分隔符,因此您无需转义匹配部分中包含的正斜杠。

因此,如果您使用/作为分隔符编写相同的表达式,它将如下所示:

sed 's/^.*\///'

这也很难阅读。

无论哪种方式,表达式都会在一行中查找正斜杠;如果有正斜杠,则删除所有包含斜杠的内容。

答案 1 :(得分:1)

通常使用的分隔符为/,用法为sed 's/pattern/str/'

有时您会发现模式中存在分隔符。在这种情况下,您可以选择转义模式中找到的分隔符或使用不同的分隔符。在您的情况下,使用了不同的分隔符%

后面的方法是推荐,因为它会让你的命令简短而干净