在awk中打​​印是在打印时删除空格

时间:2013-10-14 06:05:03

标签: unix awk wc

我正在尝试使用awk打印值,但它通过删除字段之间的空格来修改结果。 我没有得到如何维护字段之间的空间。

echo "First Names       City     Names     ES"|awk '{$1=$2=$NF="";print $0}'|wc -c

上述声明在打印时删除了“City”和“Names”之间的空格,因此wc -c的值受到影响。

请建议如何保养空间。 我的目标是验证“城市名称”值的长度

我对wc -c输出还有一个疑问,它总是给实际值1+,即如果长度为11则给出12。

1 个答案:

答案 0 :(得分:1)

  

请建议如何维护空间。

使用字段分隔符:

$ echo "First Names       City     Names     ES"|awk -F'[ ]' '{$1=$2=$NF="";print $0}'
        City     Names     
  

我对wc -c输出还有一个疑问,它总是给出1+   实际值

那是因为新行。您可以说echo而不是echo -n,以便禁用尾随换行符。

$ echo | wc -c
1
$ echo -n | wc -c
0