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

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

【讨论】:

以上是关于如何使字段分隔符既是句号又是空格? (重击脚本)的主要内容,如果未能解决你的问题,请参考以下文章

在 GraphQL 模式中,字段如何既是 GraphQLString 又是 GraphQLInt?

Python3 回文素数

如何使单个字段包含可单独排序的多条数据?

如何使“剪切”命令将相同的连续分隔符视为一个?

为啥 __builtins__ 既是模块又是字典

IFS简单说明