我看到一个bash命令sed 's%^.*/%%'
这个sed命令的含义是什么? SED的%^ */%%'
通常为sed的常见语法是sed 's/pattern/str/g'
,但在这一个它曾经s%^.*
在's/pattern/str/g'
的s
部分。
我的问题:
s%^.*
是什么意思?
sed 's%^.*/%%'
第二部分%%
的含义是什么?
我看到一个bash命令sed 's%^.*/%%'
这个sed命令的含义是什么? SED的%^ */%%'
通常为sed的常见语法是sed 's/pattern/str/g'
,但在这一个它曾经s%^.*
在's/pattern/str/g'
的s
部分。
我的问题:
s%^.*
是什么意思?
sed 's%^.*/%%'
第二部分%%
的含义是什么?
%
是一个替代分隔符,因此您不需要转义匹配部分中包含的正斜杠。
所以,如果你写与/
作为分隔符一样的表情,它会看起来像:
sed 's/^.*\///'
这也是有种难以阅读。
不论哪种方式,表达式都会在一行中查找正斜杠;如果存在正斜杠,请删除所有斜杠(包括斜线)。
通常使用的分隔符是/
,用法是sed 's/pattern/str/'
。
有时您会发现模式中存在分隔符。在这种情况下,您可以选择退出模式中的分隔符或使用不同的分隔符。在你的情况下,使用了不同的分隔符%
。
后面的方法是建议因为它保持您的命令短而干净。
是的。附加说明:它使用* last *斜线。 – kmkaplan 2010-08-18 07:26:32
另外值得注意的是,它的功能类似于'basename'(没有后缀参数),只是如果字符串以斜线结尾而'basename'不会。 – 2010-11-23 01:44:48