Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用awk读取后消除字符_Bash_Shell_Awk - Fatal编程技术网

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