Bash 理解Sed命令
我正在修改一些shell脚本,遇到了这个命令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 您可以执行此操作并退
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,快速浏览手册页会建议对文件进行就地编辑。