Jac*_*cek 2 regex bash awk sed
我有一个看起来像这样的文件:
6 6 1
0 0 0
0.0 0.0 0.0
2.938947259546411 -5.090405972278119 0.000000000000000
Run Code Online (Sandbox Code Playgroud)
我想用 var1 的值替换第一行的第一列,用 var2 的值替换第一行的第二列
数字的值可以改变;此外,第一行中有重复的值,所以我不能使用类似的东西sed -i "s/6/$var1/"file
有没有办法让我将文件修改为
3 2 1
0 0 0
0.0 0.0 0.0
2.938947259546411 -5.090405972278119 0.000000000000000
Run Code Online (Sandbox Code Playgroud)
让 var1 为 3,var2 为 2?
awk 可以轻松处理:
var1='3'
var2='2'
awk -v c1="$var1" -v c2="$var2" 'NR==1{$1=c1; $2=c2} 1' file
Run Code Online (Sandbox Code Playgroud)
3 2 1
0 0 0
0.0 0.0 0.0
2.938947259546411 -5.090405972278119 0.000000000000000
Run Code Online (Sandbox Code Playgroud)