【发布时间】:2017-10-20 04:43:28
【问题描述】:
我尝试使用 sed 更改名为 convergence.gnu 的文件中的一行
我有一个名为lafila的变量,它是一个文件名
目前,我可以做到:
lafila="nGas060.dat"
sed -i "6s/.*/plot \"$lafila\" using 1:2 with l/" convergence.gnu
这将我的verbage.gnu 文件的第六行正确更改为:
plot "nGas062.dat" using 1:2 with l
但是,现在我想在替换的行中包含一个美元符号来代替:
plot "nGas062.dat" using ($1/1000):2 with l
你能告诉我在我的 sed 命令中要改变什么吗?如果我转义一个美元符号,它就不能正常工作。双倍美元也行不通。
【问题讨论】:
-
能否请您也添加示例输入和预期输出?理解这个问题对所有人都有好处。
-
用反斜杠转义美元符号确实有效 (
$ echo "\$PATH" # prints $PATH),所以你能告诉我们你尝试过的确切命令和结果吗? -
好的,我进行了编辑以明确在 sed 中我想先打印变量替换,然后再打印美元符号。
-
您可以使用sed的
c命令将一行替换为指定的文本,这样就不用担心替换文本中的/字符了。