我正在玩一个脚本,该脚本使用存储在变量中的文件替换文本行来更新文件。在尝试了很多东西后,我猜测问题是插入了文本,它可能使用了sed不喜欢的字符。我如何使用命令的示例,替换文本的内容如下所示:
sed 's/^define.*$/'define('AUTH_KEY', 'r*v8]Wic;@Y4{|0EQ9Z?~W,-P}k:d{k)ylAFHm-d(tY6v?U,5{hn].e9eH%/Xmdy');'/' change.html
我在这里的其他地方读到你需要逃避角色但却无法使用我在这里找到的答案:Escape a string for a sed replace pattern
非常感谢任何帮助或正确方向的指针,谢谢! :)
答案 0 :(得分:2)
请注意sed
可以将任何字符作为分隔符,/
只是常规字符。如果您可以保证您的密钥没有空格,您可以尝试:
sed 's ^define.*$ &(yourkey) '
答案 1 :(得分:0)
尝试这样的事情 -
将替换文本分配给变量 -
[jaypal:~/Temp] abc="'define('AUTH_KEY', 'r*v8]Wic;@Y4{|0EQ9Z?~W,-P}k:d{k)ylAFHm-d(tY6v?U,5{hn].e9eH%/Xmdy');'"
在awk's
sub
函数中使用该变量。
[jaypal:~/Temp] awk -v rep="$abc" '{sub(/^define.*$/,rep,$0); print}' change.html