unix - 在 UNIX 中查找并更改文本值中的值

标签 unix text parameters replace

我有一个参数文件,它是一个文本文件 - bug.par,其中列出了几个参数值作为变量名称及其值。举个例子:

par1 123 
par2 234 
par3 11 12 4 15 
par4 15
par5 18
par6 1
par7 0.05

我只想创建具有不同 par5 的新文件(例如),例如 2 个 par5 等于 20、30 的附加文件。其他参数保持不变。

# additional file1 with par value 20 
    par1 123 
    par2 234 
    par3 11 12 4 15 
    par4 15
    par5 20
    par6 1
    par7 0.05

# additional file1 with par value 30 
    par1 123 
    par2 234 
    par3 11 12 4 15 
    par4 15
    par5 30
    par6 1
    par7 0.05

最佳答案

创建文件1:

sed 's/^ *\(par5\).*$/\1 20/' bug.par > file1

创建文件2:

sed 's/^ *\(par5\).*$/\1 30/' bug.par > file2

编辑:根据评论,运行循环:

# declare and initialize an array with 3 elements
declare -a arr=(20 30 40)

# iterate over array
for i in ${arr[@]}
do
    sed 's/^ *\(par5\).*$/\1 '$i'/' bug.par > file$i
done

关于unix - 在 UNIX 中查找并更改文本值中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691656/

相关文章:

Linux shell 编程。实现搜索、查找和替换技术

python - 是否有用于从 python 中的文本文件生成 pdf 的简单库?

function - 输出参数是否是其值隐式重新初始化的引用?

c - AWK 或 C 中的字符串操作

java - 如何在文件的特定行之后插入文本

parameters - OOP 对象构造函数参数

c - 分配值并将结构作为参数传递

linux - 合并多个文件,保留 unix 中的原始序列

linux - 这两个 crontab 设置有什么区别?

Unix 'Cat' Windows cmd 中的等效命令