1

我正在使用从文件中打印一些值awk

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

它打印它们很好,但不幸的是,一个值总是按原样打印,即与:

1 8: 34  
1 9: 32

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

1 8 34  
1 9 32
4

3 回答 3

8

我猜它:属于第 45 列。您可以使用 awk 的sub()函数将其删除。

试试这个:

awk 'NR>1{sub(/:$/,"",$45); print $20,$45,$102}' RS='vector' file
于 2013-08-14T12:26:11.230 回答
5

你没有显示你的输入文件,所以它是猜测工作,但也许你需要的只是:在你的 FS 中包含:

awk 'NR>1{print $20,$45,$102}' FS='[[:space:]:]+' RS='vector'
于 2013-08-14T12:40:06.363 回答
3

使用 printf 函数将其格式化为数字:

awk 'NR>1{printf "%d %d %d\n", $20,$45,$102}' RS='vector'
于 2013-08-14T12:24:58.030 回答