我有一个.pro文件,其中包含一行" Max_length:123"。我需要取一个usser输入值,例如:145,并重新构造一行,如" Max_length:145"。怎么样?
答案 0 :(得分:1)
read var
awk -v var=$var '$0 ~ /Max_length:/ { print "Max_length:"var } $0 !~ /Max_length:/ { print $0 }' oldfile > newfile
mv newfile oldfile
读入变量var的输入。将此作为变量传递给awk,如果文件oldfile中的行与模式匹配“Max_length:”,则将文本与行一起打印。在所有情况下,只需打印该行。将输出重定向到新文件,然后重命名newfile oldfile。
答案 1 :(得分:0)
$ cat file
Max_length: 123
Foo: 666
$ awk -v v=145 '$1=="Max_length:"{$2=v}1' file
Max_length: 145
Foo: 666
说明:
$ awk -v v=145 ' # using awk, set desired value to v
$1=="Max_length:"{ # if Max_... in the first field
$2=v # replace second with v
}1' file # output
答案 2 :(得分:0)
read val && sed -i -e s/"`grep Max_length: $file_name>`"/"Max_length: $val"/g file_name
其中 file_name 是文件路径。
此脚本会将 Max_length 从任何值更改为用户提供的输入。