如何使字段分隔符既是一个句号又是一个空格?(Bash脚本)

如何使字段分隔符既是一个句号又是一个空格?(Bash脚本),bash,unix,scripting,aix,Bash,Unix,Scripting,Aix,我正在尝试检查所有服务器的列表是否都具有有效的PTR记录。我的问题是,要比较afg当前的服务器列表,我已执行以下操作: hostlist=$(echo /locationOfhostfile | awk 'BEGIN { FS=":" } ; { print $4 }' | xargs -i host {}) 这将以以下格式返回所有服务器(name.location.com是IPAddress,还有它们的别名)。然后,我在服务器上执行dig-x,如下所示: ptrrecords=$($(ech

我正在尝试检查所有服务器的列表是否都具有有效的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的服务器的名称。(name.location.com) 现在我想比较这两个列表,所以我又创建了两个变量来缩短这两个列表,使其只包含服务器名称

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的字段分隔符设为句号或空格


对于我提出这个问题的冗长方式表示歉意。

[我们]可以使用
FS=“[。]”–amdixon

设置ifs
IFS=“.”
我可以发誓我昨天试过了,但是没有用。不过现在这已经奏效了,非常感谢!