【问题标题】:find and change value in text value in UNIX在 UNIX 中查找和更改文本值中的值
【发布时间】:2012-05-21 19:50:09
【问题描述】:

我有一个参数文件,它是一个文本文件 - 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

【问题讨论】:

    标签: unix text parameters replace


    【解决方案1】:

    创建文件1:

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

    创建文件2:

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

    编辑:根据 cmets,运行循环:

    # 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 等)的过程吗?对不起,一个简单的问题
    猜你喜欢
    • 2013-10-31
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2021-07-29
    相关资源
    最近更新 更多