用awk阅读后消除角色

时间:2013-08-14 12:22:37

标签: bash shell awk

我正在使用awk

从文件中打印一些值

awk 'NR>1{print $20,$45,$102}' RS='vector'

它打印得很好,但不幸的是,值总是按原样打印,即。与:

一起
1 8: 34  
1 9: 32

有没有办法在值之后删除:,所以我可以得到:

1 8 34  
1 9 32

3 个答案:

答案 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'