linux - 执行 Sed 命令

标签 linux sed

当我运行命令时

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 位

最佳答案

$1 如果是双引号字符串,将扩展为空字符串('')。
您可以使用单引号来保留 $1 的字面值:

sed -e 's/$1/@root@The-Three-Little-Pigs-Siri-Proxy/' -i gen_certs.sh

关于linux - 执行 Sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9516456/

相关文章:

Linux + uClibc + pthread (C) : application freezes at the end

.net - 如何修复 Unix LocalMachine X509Store 仅限于 Root 和 CertificateAuthority 存储错误

awk - 更改文件名的脚本

linux - sed 删除 svn 访问控制列表中的用户

regex - 与 5 个选项中的一个进行比较

linux - 如何确认 RedHat Enterprise Linux 版本?

linux - Linux Bash 中的一行命令

linux - linux load 到底是什么意思?

unix - 删除除匹配的图案行最佳做法以外的所有行(sed)

bash - sed 反向引用和命令插值