awk打印输出为变量/数组不保持格式化

时间:2017-08-03 23:55:52

标签: arrays bash awk sed

我的目标是从awk打印命令中获取输出(同时保持格式化)并使用它来替换文件中的某些文本。
目前即时使用:

declare -a mach=($(awk -F',' 'NR>1{print NR-1, $8}' mag_grad.csv)) 

给出:

1 0.77492
2 0.18022
3 0.29596
4 0.5229

等...

我尝试使用sed来查找和替换文件中带有数组$ mach的文本,格式为2列。

sed -i s/"mach data"/"${mach[*]}"/g nodedata.txt

然而,结果是用

替换马赫数据
1 0.77492 2 0.18022 3 0.29596 4 0.5229 .......

关于如何保留格式的任何想法?

干杯

1 个答案:

答案 0 :(得分:1)

尝试:

mach=$(awk -F',' 'NR>1{print NR-1, $8}' mag_grad.csv)
sed -i "s/\x22mach data\x22/${mach//$'\n'/\\n}/" nodedata.txt