#!/usr/bin/env bash
cat > example_file.txt <<EOL
group, , price
1, value, 3.21
1, 3.42, 4.11
1, 3.5, 1.22
2, 4.1, 9.2
2, 4.2, 2.11
EOL
我想将此文件的第 1 行第 2 列中的值替换为第 2 行第 2 列中的值。所以我希望 awk 返回这个:
#!/usr/bin/env bash
cat > example_file.txt <<EOL
group, value, price
1, value, 3.21
1, 3.42, 4.11
1, 3.5, 1.22
2, 4.1, 9.2
2, 4.2, 2.11
EOL
我找不到如何在 awk 中引用下一行:
cat example_file.txt | awk -F, 'BEGIN { OFS = FS } { if (NR==1) $2 = ??}'
您可以使用
getline
获取下一行输入,并split
使用 current 将其拆分为字段数组FS
:如果您还想打印“got”行,它仍然在
ln
拆分后(为了获得正确的顺序,我们还需print
要先显式,并使用 跳过默认打印next
):