用awk阅读后消除角色

Man*_*ete 1 bash shell awk

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

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

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

1 8: 34  
1 9: 32
Run Code Online (Sandbox Code Playgroud)

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

1 8 34  
1 9 32
Run Code Online (Sandbox Code Playgroud)

Ken*_*ent 8

我想这:属于第45列.您可以使用awk的sub()功能将其删除.

试试这个:

awk 'NR>1{sub(/:$/,"",$45); print $20,$45,$102}' RS='vector' file
Run Code Online (Sandbox Code Playgroud)

  • @fedorqui我也想到了`+ 0`.然而,当我两次阅读问题时,我只看到"价值",而不是"数字".因此我选择`sub()`,我认为它会更通用.当然,如果OP只想要打印数字,那么"+ 0或*1"将是一个不错的捷径.还有,我没有孩子.:)他显然是一个Debian人.我心中有拱门!:d (3认同)

Ed *_*ton 5

你没有显示你的输入文件所以它是猜测 - 但你可能只需要:在你的FS中包含它:

awk 'NR>1{print $20,$45,$102}' FS='[[:space:]:]+' RS='vector'
Run Code Online (Sandbox Code Playgroud)