当我运行命令
时sed -e "s/$1/@root@The-Three-Little-Pigs-Siri-Proxy/" -i gen_certs.sh
我收到以下错误消息。我试图在同一个文件中用下面的另一个替换文本$ 1,而不是创建一个只修改当前文件的文本。
sed: -e expression #1, char 0: no previous regular expression
任何想法可能导致错误以及如何修复它?
操作系统:Ubuntu 10.10 32位
答案 0 :(得分:2)
$1
如果是双引号字符串,则会扩展为空字符串(''
)。$1
的字面值:
sed -e 's/$1/@root@The-Three-Little-Pigs-Siri-Proxy/' -i gen_certs.sh
答案 1 :(得分:1)
您需要转义模式:sed -e "s/\$1/@root@The-Three-Little-Pigs-Siri-Proxy/" -i gen_certs.sh
,因为$1
表示sed中的后向引用(假设您要替换输入中的字符串$1
,对吗?)