我看到一個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