关于Linux中sed命令的问题

网上替换Ubuntu源有sudo sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list 这么一行,请问命令中 @ 是什么意思,有什么作用?

@ 作为分隔符 ,实际要替换的是 /archive.ubuntu.com/ 换成 /mirrors.aliyun.com/ , sed 原有的/ 和替换的/ 冲突了,所以用 @ 替换

-i 表示在当前行之前插入文本
示例:

^符号表示开头

.*符号表示通配任意字符

行内包含“SVNAME”参数,则将整行替换

sed -i 's/^.'$SVNAME'.$/'$NEWNAME'/' $FILEPATH

s命令表示替换

img

sudo sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list 这一行中@ 作为分隔符, 把/archive.ubuntu.com/ 换成 /mirrors.aliyun.com/