#
此行中的字符含义是什么:
/bin/sed -e 's#abc#zzz#g'
答案1
它是分隔符或分隔符。最常用的/
是
sed 's/old/new/' file
但是 sed 会将命令 (s) 后的第一个字符作为分隔符。您可以使用任何方便的字符,例如...
sed 's%old%new%' file
如果文件包含/
(或其他常规分隔符),这将非常有用。您可以选择一些您知道不需要放入表达式中的字符作为分隔符sed
,从而省去很多烦人的转义。
假设你想替换
https://askubuntu.com/questions
和
https://askubuntu.com/posts
你可以使用
sed 's/https:\/\/askubuntu.com\/questions/https:\/\/askubuntu.com\/posts/' file
但最好使用
sed 's|https://askubuntu.com/questions|https://askubuntu.com/posts|' file
答案2
它是一个分隔符,就像 一样"/"
,与 相同's/abc/zzz/g'
。
它的意思是搜索“abc”并将其替换为“zzz”,使用全局标志,意味着对该行上的所有“abc”都执行此操作,而不仅仅是第一个。
您还可以对模式地址使用其他分隔符,但在这种情况下,您需要对其进行转义才能正确解释:
sed -r '\#abc#p'