linux - Bash 脚本 : Restore specific text in a file after some file editing

标签 linux bash append

这个问题与我在 Bash script: Appending text at the last character of specific line of a file 中提出的问题有关.

在包含唯一字符串 MYVERSION 的(文件)行末尾 append 一个变量后,我现在想恢复该行的初始内容。

我设法将该行的初始内容存储在一个名为 "OLD_MY_VERSION" 的变量中,但是当我尝试使用 sed 恢复该行时

-i "/^MYVERSION=/ c\$$OLD_MY_VERSION myfile.txt

我得到的是 "$MYVERSION=0.1" 而不是 "MYVERSION=0.1"(当然没有引号)。

知道如何删除多余的字符 ($) 吗?如果我不放入额外的 $,我不会在替换中得到 "OLD_MY_VERSION" 变量的内容,而只会得到 "$OLD_MY_VERSION" 字符串。

非常感谢。

最佳答案

我认为你应该试试这个:

sed -i "s/^MYVERSION=.*$/$OLD_MY_VERSION/" myfile.txt

这会将以 MYVERSION 开头的整行 (s) 替换为 $OLD_MY_VERSION 的内容。

您也可以使用 c 命令,但您不需要命令中的 \$:

sed -i "/^MYVERSION/ c$OLD_MY_VERSION" myfile.txt

关于linux - Bash 脚本 : Restore specific text in a file after some file editing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5949094/

相关文章:

java - 如何创建一个模拟 SSH shell 用户交互的机器人?

bash - 如何将命令输出的第二行读入 bash 变量?

javascript - 使用 javascript/jQuery 在每第五行之后 append 表格行

bash - grep 找到字符串后计算行数

linux - 用于解析命令输出的 Bash 脚本

python - 如何使用 Python 连接多个 netCDF 文件中的数据

arrays - 如何使用 Sequelize + PostgreSQL 将项目 append 到数组值

Python:获取 shell 命令的输出 'history'

linux - 通过 dbus 接口(interface)使用 wpa_supplicant 创建访问点

c++ - 如何从C++获取linux 2.6中的SPID