如何使字段分隔符既是句号又是空格? (重击脚本)
Posted
技术标签:
【中文标题】如何使字段分隔符既是句号又是空格? (重击脚本)【英文标题】:How can I make the Field Separator be both a full stop and a space? (Bash Script) 【发布时间】:2015-12-20 12:16:20 【问题描述】:我正在尝试检查服务器列表是否都具有有效的 PTR 记录。我的问题是要比较服务器列表 afg 目前我已经完成了以下操作:
hostlist=$(echo /locationOfhostfile | awk 'BEGIN FS=":" ; print $4 ' | xargs -i host )
这将返回以下格式的所有服务器(name.location.com 是 IPAddress 以及它们拥有的任何别名)。然后我在服务器上执行 dig -x 如下:
ptrrecords=$($(echo "$hostlist" | awk ' print $3 ' | tr -d ',' | xargs -i dig +short -x )
这仅返回具有有效 PTR 的服务器的名称。 (名称.location.com) 我现在想比较这两个列表,所以我创建了另外 2 个变量来缩短这两个列表,使其只有服务器名称。
finalhostlist=$(echo "$hostlist" | awk 'BEGIN FS="." ; print $1 ')
finalptrrecords=$(echo "$ptrlist" | awk 'BEGIN FS="." ; print $1 ')
当我比较这两个变量时,我的问题是 2 个服务器不遵循正常的命名约定 (name.location.com),结果显示为 server is 10 作为第一个“。”因为该行是在 IP 地址期间。此问题发生在 finalhostlist 变量中。 如何将 $finalhostlist 的字段分隔符设为句号或空格?
为我提出这个问题的冗长方式道歉。
【问题讨论】:
设置 ifs。IFS=". "
我可以发誓我昨天尝试了这个但无济于事。这现在可以工作了,非常感谢!
【参考方案1】:
[我们]可以使用FS="[. ]";
– amdixon
【讨论】:
以上是关于如何使字段分隔符既是句号又是空格? (重击脚本)的主要内容,如果未能解决你的问题,请参考以下文章