linux - 使用 awk 生成报告

标签 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        /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

我设法添加了以下脚本,它列出了服务器名和挂载点

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 解决方案(针对您当前的输入):

cat check | awk 'NR==1{ print $1; next }{ m=substr($1,index($1,"/")+1); 
            sub(/[^a-z]+/,"",m); if($2!~m) print $1,$2 }' 

输出:

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

关于linux - 使用 awk 生成报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45134806/

相关文章:

android - 如何在android模拟器中将可读权限更改为可写权限

linux - Elfinder 连接到远程目录

linux - 使用 'sed' 或其他类似命令捕获一组,然后仅输出该数据

linux - 比赛结束后如何打印所有内容?

linux - 替换所有不包含匹配字符串的行

linux - 在不换行的情况下将文本附加到文件

bash - 将文件名的一部分插入文件中行的开头

python - 如何替换多个文件中的字符串?

linux - 使用awk在top命令中进行字段分隔

linux - 简单的 awk 命令问题(FS、OFS 相关)