linux - 使用 bash 进行文本操作

标签 linux bash shell awk

我在某个文件中定义了 bash 变量:

VAR1=....
VAR2="some value"
VAR3=....
....

如何更改某个变量的值并在特定行中添加一个变量?我需要在单个 shell 脚本中完成它。

编辑:

预期输出是:

VAR1=....
VAR2="another value"
VAR3=....
NEW_VAR=....
....

最佳答案

如果我正确理解你的问题,我相信以下代码将达到你想要的结果:

#!/bin/bash

#change the value of a certain variable
sed -i -e 's/^VAR2=.*$/VAR2="another-value"/gi' /folder/file

#add a new variable to the variable declaration area, using one existing variable as a reference point
sed -i -e '/^VAR2=/i \NEW_VAR="another-value"' /folder/file

exit 0

这将替换变量的值,并将一个新变量添加到列表中,使用一个现有变量作为插入新变量的引用点。这段代码可以在许多 Bash 版本中运行。

关于linux - 使用 bash 进行文本操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40571377/

相关文章:

java - 为什么我在 Linux 中使用 ExecutorService 读取线程流时得到 "java.io.IOException: Stream closed"?

linux - 根据文件夹结构删除旧目录

公网IP地址的Linux命令

linux - 通过在我的 Linux 终端中运行脚本来初始化 PySpark shell(Spark 版本 2.4.4)

linux - 在 Linux 内核中将 while(1) 循环更改为忙等待

linux - eclipse NEON : generate core dump

java - Tomcat工作目录为空

linux - 如何列出 Linux 组中的所有用户?

linux bashrc 别名以打开终端并运行各个脚本

shell - Unix连接两个文件的多个字段