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