Linux 使用awk生成报告

Linux 使用awk生成报告,linux,awk,sed,Linux,Awk,Sed,我在100台服务器上有/etc/fstab条目,我正试图编写一个awk脚本来识别以下内容 sup01p.abc.com.au | SUCCESS | rc=0 >> 10.15.23.25:/tools /data/store nfs defaults,nodev 0 0 10.15.23.25:/kdump01 /data/kdump nfs defaults,nodev 0 0 10.15.23.25:/ops

我在100台服务器上有/etc/fstab条目,我正试图编写一个awk脚本来识别以下内容

sup01p.abc.com.au | SUCCESS | rc=0 >>

10.15.23.25:/tools /data/store        nfs     defaults,nodev  0       0
10.15.23.25:/kdump01 /data/kdump     nfs     defaults,nodev  0       0
10.15.23.25:/ops        /data/ops  nfs     defaults,nodev  0       0
我需要的是,首先我的awk脚本需要打印域名,然后它应该打印

10.15.23.25:/tools  /data/store - this is an invalid entry, 
工具未正确安装在存储上且无效,但kdump01安装正确 在kdump上,ops正确安装在ops上)

如何使用awk或sed打印这样的报告?(仅打印无效的nfs装载)

输出应该是这样的

sup01p.abc.com.au 
10.15.23.25:/tools /data/store
我设法添加了下面的脚本,它列出了servername和挂载点

cat check |  awk '$1~/com.au/{ print $1 ;next} /10.15.23.25/{print $1;}/data/{print $2;print "======"}'

sup01p.abc.com.au
10.15.23.25:/tools
/data/store
======
10.15.23.25:/kdump01
/data/kdump
=====
10.15.23.25:/ops
/data/ops
======
awk解决方案(针对您当前的输入):

输出:

sup01p.abc.com.au
10.15.23.25:/tools /data/store

您必须添加您试图解决此问题的代码。。。NR/FNR等于1将为您提供第一行,因为空格是默认分隔符,
$1
将为您提供域名。。。类似地,对于第一行以外的行,获取要比较的字段。。。您可以使用regex或split函数比较第一/第二个字段等等……如果“规则”是
/tools
不“匹配”
/data/store
,而
/kdump01
不“匹配”
/data/kdump
,那么您应该在Q中明确地说出来。不要让我们猜测:-/。祝你好运,抱歉,我提到过。kdump01正确安装在kdump上,这是正确的。
sup01p.abc.com.au
10.15.23.25:/tools /data/store