database - Bash 在指定行编辑文件中的最后一个字符

标签 database bash file-io

我像这样使用 .txt 文件作为数据库:

is-program-installed= 0
is-program2-installed= 1
is-script3-runnig= 0
is-var5-declared= 1

但是如果我卸载程序 2 并且我想将它的数据库值设置为“0”怎么办?

最佳答案

使用 sed 的一种方法:

sed -e '/is-program2-/ s/.$/0/' -i file.txt 

它是这样工作的:

  • s/.$/0/ 用 0 替换最后一个字符:点匹配任何字符,$ 匹配行尾——因此 .$ 是该行的最后一个字符。
  • /is-program2-/ 是一个过滤器,因此只对匹配的行执行替换。

我使用的过滤器模式有点懒惰:它很短​​但不准确。更长、更严格的解决方案是:

sed -e '/^is-program2-installed= / s/.$/0/' -i file.txt 

关于database - Bash 在指定行编辑文件中的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894645/

相关文章:

mysql - mysql 数据库错误过程

mysql - 查找并删除 SQL 记录(如果它们发生在 8 小时内)(最近的记录除外)

python - 从 shell 脚本返回值到 python 脚本

c++ - 使用重叠 IO 写入文件与在单独线程中写入文件

mysql - 在 MS Access 和 MySQL 之间同步数据的最佳方法是什么?

bash - 如何从 bash 脚本执行的 bash 脚本返回 PID

bash - 在评估文件以为单个命令设置环境变量时,如何支持注释?

java - 读取和写入同一文件 - 输出格式更改

java - 从生产者到消费者的可靠文件移交

mysql - 用户体重历史数据库设计