我正在尝试从文件中提取nth + 1
和nth + 3
列。
这是尝试过的,这是一个有用的伪代码:
for i in {1..100} ; do awk -F "," " { printf \"%3d, %12.3f, %12.3f\\n\", \$1, \$($i+1), \$($i+3) } " All_Runs.csv > Run-$i.csv
这显然不起作用(但希望似乎是合理的)。
我该怎么做?
答案 0 :(得分:1)
使用awk进行递增可以避免一些毛茸茸的引用和转义:
awk -F "," 'BEGIN { i = j = 1 } { i++; j+=3; printf "%3d, %12.3f, %12.3f\n", $1, $i, $j > Run-$i.csv }' All_Runs.csv
或者使用awk的变量传递功能:
for i in {1..100}; do awk -F "," -v i=$i '{ i++; j=i+2; printf "%3d, %12.3f, %12.3f\n", $1, $i, $j }' All_Runs.csv > Run-$i.csv; done
(均未经测试)
答案 1 :(得分:0)
等一下,如果我正确输入命令,它确实有效......
for i in {1..2} ; do awk -F "," " { printf \"%3d %12.3f %12.3f\\n\", \$1, \$($i+1), \$($i+3) } " All_Runs.csv ; done
错过了; done
。卫生署!