Bash 使用awk读取后消除字符
我正在使用Bash 使用awk读取后消除字符,bash,shell,awk,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 使用printf函数将其格式化为数字: awk 'NR>1{printf "%d %d %d\n", $20,$45,$102}' RS='vector' 使用printf函数将其格式化为数字: awk 'NR>1{pr
awk
awk'NR>1{print$20,$45,$102}'RS='vector'
它可以很好地打印它们,但不幸的是,值总是按原样打印,即与:
1 8: 34
1 9: 32
是否有方法删除值后的:
,以便获得:
1 8 34
1 9 32
使用printf函数将其格式化为数字:
awk 'NR>1{printf "%d %d %d\n", $20,$45,$102}' RS='vector'
使用printf函数将其格式化为数字:
awk 'NR>1{printf "%d %d %d\n", $20,$45,$102}' RS='vector'
我猜
:
属于第45列。您可以使用awk的sub()
函数删除它
试试这个:
awk 'NR>1{sub(/:$/,"",$45); print $20,$45,$102}' RS='vector' file
我猜
:
属于第45列。您可以使用awk的sub()
函数删除它
试试这个:
awk 'NR>1{sub(/:$/,"",$45); print $20,$45,$102}' RS='vector' file
您没有显示输入文件,因此这是猜测工作,但您可能只需要在FS中包含
:
:
awk 'NR>1{print $20,$45,$102}' FS='[[:space:]:]+' RS='vector'
您没有显示输入文件,因此这是猜测工作,但您可能只需要在FS中包含
:
:
awk 'NR>1{print $20,$45,$102}' FS='[[:space:]:]+' RS='vector'
好的。另外,
$45+0
也可以。顺便问一下,你有预约吗D@fedorqui我也想到了+0
。然而,当我读两遍这个问题时,我看到的是“值”,而不是“数”。因此我选择了sub()
,我认为它会更通用。当然,如果OP只想打印数字,+0或*1
将是一条很好的捷径。告诉你,我没有孩子。:)他显然是个Debian人。我的心有拱门好的。另外,$45+0
也可以。顺便问一下,你有预约吗D@fedorqui我也想到了+0
。然而,当我读两遍这个问题时,我看到的是“值”,而不是“数”。因此我选择了sub()
,我认为它会更通用。当然,如果OP只想打印数字,+0或*1
将是一条很好的捷径。告诉你,我没有孩子。:)他显然是个Debian人。我的心有拱门D