Bash 理解Sed命令

Bash 理解Sed命令,bash,sed,Bash,Sed,我正在修改一些shell脚本,遇到了这个命令 sed -i "s@demo.testcase.com@$hostname@g" configuration.xml 我搜索并发现sed with s选项只是一个替换。最后的g代表全球。但我找不到@symbol的用途 谁能给我解释一下上面的命令吗 谢谢紧跟在s后面的符号是命令/参数分隔符。传统上,/是最常用的符号,但也可以是其他符号,如@。如果要替换此符号: /some data/ 为此: /some other/data 您可以执行此操作并退

我正在修改一些shell脚本,遇到了这个命令

sed -i "s@demo.testcase.com@$hostname@g" configuration.xml
我搜索并发现sed with s选项只是一个替换。最后的g代表全球。但我找不到@symbol的用途

谁能给我解释一下上面的命令吗


谢谢

紧跟在
s
后面的符号是命令/参数分隔符。传统上,
/
是最常用的符号,但也可以是其他符号,如
@

如果要替换此符号:

/some data/
为此:

/some other/data
您可以执行此操作并退出
/

sed "s/\/some data\//\/some other\/data/g"
或者将
/
更改为其他内容:

sed "s@/some data/@/some other/data@g"

好的,现在我明白了,文件的创建者可能使用@,因为有时候他想替换路径名。这样,他就可以离开/(斜杠)保持原样。非常感谢,我会尽快接受你的回答。@Tcanarchy,是的,这比逃避每一次打击要容易得多!你知道-i代表什么吗?@Tcanarchy,快速浏览手册页会建议对文件进行就地编辑。