【发布时间】:2013-07-14 22:24:55
【问题描述】:
在寻找我的答案时,我遇到了这个:
removing a space from a string by awk
但我未能成功地将此处的信息推断为我的情况。
我目前有一些数据格式如下:
Host Name="Host Name Here"
Product Name="Product Name Here"
Program Name="Program Name Here"
我只是想删除第一个字段中的空格,因此结果将如下所示:
HostName="Host Name Here"
ProductName="Product Name Here"
ProgramName="Program Name Here"
使用此代码会删除所有字段中的所有空格:
awk 'BEGIN {FS=" "; OFS=""} {for(i=1;i<=NF;++i) {out = out OFS $i}} END {print out;}'
据我了解,这只是寻找空格作为字段分隔符并打印出来,空格替换为空字符串,这不是我想要的。
我认为我需要使用 awk,并且我必须将字段分隔符设置为 =,然后应用类似这样的东西,也许吧??
awk '$1 ~ /[ \t]/ {gsub(/[ \t]/,"",$1)1}
据我非常有限的理解,它将查看字段 1,如果它包含模式 [\t],将使用 gsub 将该空间替换为空字符串。不过,我认为我的语法在这里并不完全正确。
【问题讨论】: