嗨,我在postscript中有以下行
sed 's_$org_$repl_g' $i > $temp_file
在此$ org中表示要更改的名称,$ repl表示替换。我已经为两者做了回音,两者都是写的。 $ i代表文件名。当我回到下面
echo $(sed "s/$org/$repl_g" $i)
然后它也不会取代这个词。当我直接尝试使用终端时,如下所示
sed 's_Dilip_Agarwal_g' test.txt
然后通过替换原始输出来提供正确的输出。
任何身体都可以帮助我,在这里我错了。
由于
答案 0 :(得分:2)
不要在其上使用命令替换。并使用双引号而不是单引号。单引号不会扩展参数。您还必须修复参数扩展。 _
也是一个有效的参数字符,因此您需要使用大括号来隔离唯一可识别参数的字符。
sed "s_${org}_${repl}_g" "$i" > "$temp_file"
您也可以使用另一个不是参数字符的分隔符:
sed "s|$org|$repl|g" "$i" > "$temp_file"