在UNIX中查找和更改文本值中的值 我有一个参数文件,它是一个文本文件-Bu.Par,其中几个参数值被列为变量名及其值。举个例子: par1 123 par2 234 par3 11 12 4 15 par4 15 par5 18 par6 1 par7 0.05

在UNIX中查找和更改文本值中的值 我有一个参数文件,它是一个文本文件-Bu.Par,其中几个参数值被列为变量名及其值。举个例子: par1 123 par2 234 par3 11 12 4 15 par4 15 par5 18 par6 1 par7 0.05,unix,text,parameters,replace,Unix,Text,Parameters,Replace,我只想用不同的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

我只想用不同的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

伟大的谢谢…我们可以循环这个过程吗,例如向量的长度(20、30、40、50等)?很抱歉问这么简单的问题