我看到了一个bash命令sed 's%^.*/%%'
通常,sed的常用语法是sed 's/pattern/str/g'
,但在此版本中,s%^.*
部分使用了s
's/pattern/str/g'
部分。
我的问题:
s%^.*
是什么意思?
%%
的第二部分中sed 's%^.*/%%'
的含义是什么?
答案 0 :(得分:11)
%
是一个替代分隔符,因此您无需转义匹配部分中包含的正斜杠。
因此,如果您使用/
作为分隔符编写相同的表达式,它将如下所示:
sed 's/^.*\///'
这也很难阅读。
无论哪种方式,表达式都会在一行中查找正斜杠;如果有正斜杠,则删除所有包含斜杠的内容。
答案 1 :(得分:1)
通常使用的分隔符为/
,用法为sed 's/pattern/str/'
。
有时您会发现模式中存在分隔符。在这种情况下,您可以选择转义模式中找到的分隔符或使用不同的分隔符。在您的情况下,使用了不同的分隔符%
。
后面的方法是推荐,因为它会让你的命令简短而干净。