我正在使用awk
awk 'NR>1{print $20,$45,$102}' RS='vector'
它打印得很好,但不幸的是,值总是按原样打印,即。与:
1 8: 34
1 9: 32
有没有办法在值之后删除:
,所以我可以得到:
1 8 34
1 9 32
答案 0 :(得分:8)
我想:
属于第45列。您可以使用awk的sub()
函数删除它。
试试这个:
awk 'NR>1{sub(/:$/,"",$45); print $20,$45,$102}' RS='vector' file
答案 1 :(得分:5)
您没有显示您的输入文件,因此它是猜测工作,但您可能只需要在您的FS中包含:
:
awk 'NR>1{print $20,$45,$102}' FS='[[:space:]:]+' RS='vector'
答案 2 :(得分:3)
使用printf函数将其格式化为数字:
awk 'NR>1{printf "%d %d %d\n", $20,$45,$102}' RS='vector'