为什么在以下示例中获取分隔符之前和之后的空格?
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
答案 0 :(得分:12)
这可能对您有用:
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
答案 1 :(得分:5)
已经给出了解决方案,但没有完整的解释......
这是因为当您使用带有许多参数的print
(以逗号分隔)时,会在值之间放置字段分隔符。来自awk
男人:
print expr-list
打印表达式。每个表达都是分开的 通过OFS变量的值。输出 记录以ORS的值终止 变量
awk
中的字符串连接运算符不是昏迷,+
,而空格:str = str1 str2
连接str1
和{{1} }。