如何使用 awk 更改多个文件中的特定字段

如何使用 awk 更改多个文件中的特定字段

我对脚本语言很陌生。我有多个输出文件,其名称格式类似:output1、output2 等。

在每个输出文件中,记录遵循以下模式:

"295534
4750
4 -0.28 -0.01 -0.03 0 0 0 0 1 425.1 -1 4 0
0 0.28 -0.01 -0.025 0 0 0 0 1 425.1 -1 4 0
0 0.28 -0.01 -0.02 0 0 0 0 1 425.1 -1 4 0
....."

我想做的是将每个文件中第二行的字段除以100(即4750/100)。我该怎么做呢?

我很感激任何建议。

答案1

awk 'NR==2{ $0/=100 }1' output1 >output1.fixed

应用于多个输入文件:

for file in ./output*; do
    awk 'NR==2{ $0/=100 }1' "$file" >fixed_"$file"
done

将更改应用于特定字段(如果超过一个字段)和第二行号:

for file in ./output*; do
    awk 'NR==2{ $1/=100 }1' "$file" >fixed_"$file"
done

$1代表第一个字段值,将其更改为您要更改的任何其他字段。

相关内容