Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
awk输出中的额外空间_Awk - Fatal编程技术网

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,