此问题已在此处有答案:
Using different delimiters in sed commands and range addresses(3个答案)
What's the command mean? sed 's,^.*/,,'(1个答案)
两年前关闭。
我看到一个bash命令sed 's%^.*/%%'
通常sed的常见语法是sed 's/pattern/str/g'
,但在这个例子中,它使用s%^.*
来表示's/pattern/str/g'
中的s
部分。
我的问题:s%^.*
是什么意思sed 's%^.*/%%'
第二部分中的%%
是什么意思?
2条答案
按热度按时间yx2lnoni1#
%
是另一种分隔符,这样就不需要转义匹配部分中包含的正斜杠。因此,如果你要用
/
作为分隔符来写同样的表达式,它看起来像这样:这也很难读懂
无论哪种方式,表达式都将在一行中查找正斜杠;如果有正斜杠,则删除该斜杠之前所有内容。
ctrmrzij2#
通常使用的定界符是
/
,用法是sed 's/pattern/str/'
。有时您会发现模式中存在分隔符。在这种情况下,您可以选择转义模式中的分隔符,或者使用不同的分隔符。在本例中,使用了不同的分隔符
%
。后一种方式是 * 推荐 *,因为它使您的命令 * 简短和干净 *。