我目前有以下代码,它打印出名为chimefrbcat1.csv的.csv文件第4列第2行和第599行之间的所有值。
#!/bin/bash
awk -F , 'NR >= 2 && NR <= 599 { print NR " " $4 }' chimefrbcat1.csv |
while read -r lineno chimera; do
echo "chimera on line $lineno is $chimera"
done
然而,我希望代码按以下方式工作:
- 抓取第2行第4列第7列中的值
- 为每个值生成两个变量,我可以用于计算
- 移到第3行并更改这两个变量的值
我很确定我需要一个带有counter
变量的"for循环",该变量对应于行,但我不确定如何写入。
如果需要添加第4列和第7列,可以在awk
脚本中添加:
awk -F , 'NR >= 2 && NR <= 599 { print NR " " $4 " " $7 " " $4+$7 }' chimefrbcat1.csv |
while read -r lineno col4 col7 sum; do
echo "line:$lineno $col4 + $col7 = $sum"
done
或在bash
中使用算术扩展:
awk -F , 'NR >= 2 && NR <= 599 { print NR " " $4 " " $7 }' chimefrbcat1.csv |
while read -r lineno col4 col7; do
((sum = col4 + col7))
echo "line:$lineno $col4 + $col7 = $sum"
done