awk输出中的额外空间
在下面的示例中,为什么要在分隔符之前和之后获得空白awk输出中的额外空间,awk,Awk,在下面的示例中,为什么要在分隔符之前和之后获得空白 awk -F'^' '{print $1,":",$2}' SERVER_2012-02-29-12-15-00 3969 : 1272 3969 : 1272 3969 : 1272 我预计结果如下,没有任何空格: 3969:1272 3969:1272 3969:1272 文本文件如下所示 cat SERVER_2012-02-29-12-15-00 3969^1272^14.140.90.242^^IN^como^2012-02-2
awk -F'^' '{print $1,":",$2}' SERVER_2012-02-29-12-15-00
3969 : 1272
3969 : 1272
3969 : 1272
我预计结果如下,没有任何空格:
3969:1272
3969:1272
3969:1272
文本文件如下所示
cat SERVER_2012-02-29-12-15-00
3969^1272^14.140.90.242^^IN^como^2012-02-29
3969^1272^14.140.90.242^^IN^como^2012-02-29
3969^1272^14.140.90.242^^IN^como^2012-02-29
这可能适合您:
awk -F'^' '{print $1":"$2}' SERVER_2012-02-29-12-15-00
3969:1272
3969:1272
3969:1272
要将字段与连接起来:
请删除,
或者将输出字段分隔符OFS更改为null
awk -F'^' -vOFS='' '{print $1",:,"$2}' SERVER_2012-02-29-12-15-00
3969:1272
3969:1272
3969:1272
已经给出了解决方案,但没有完整的解释 这是因为当您对许多参数(由coma分隔)使用
print
时,会在值之间放置一个字段分隔符。从awk
man:
打印expr列表
打印表达式。每个表达式都是分开的
通过OFS变量的值。输出
记录以ORS的值终止
变数
awk
中的字符串连接运算符不是coma,也不是+
,而是空格:str=str1 str2
连接str1
和str2
,或者将OFS更改为“:”,只需打印$1,