linux 这个sed命令是什么意思?sed的%^.*/%%' [重复]

ymdaylpp  于 2023-05-16  发布在  Linux
关注(0)|答案(2)|浏览(262)

此问题已在此处有答案

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%^.*/%%'第二部分中的%%是什么意思?

yx2lnoni

yx2lnoni1#

%是另一种分隔符,这样就不需要转义匹配部分中包含的正斜杠。
因此,如果你要用/作为分隔符来写同样的表达式,它看起来像这样:

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

这也很难读懂
无论哪种方式,表达式都将在一行中查找正斜杠;如果有正斜杠,则删除该斜杠之前所有内容。

ctrmrzij

ctrmrzij2#

通常使用的定界符是/,用法是sed 's/pattern/str/'
有时您会发现模式中存在分隔符。在这种情况下,您可以选择转义模式中的分隔符,或者使用不同的分隔符。在本例中,使用了不同的分隔符%
后一种方式是 * 推荐 *,因为它使您的命令 * 简短和干净 *。

相关问题