尝试awk
查看文件并检查列是否有值。
- 如果它的值为“x”,则将“x”打印到电子邮件中(通过
"| mail -s "
)。 - 如果它与“x”不匹配,则打印“无值”,但仍发送邮件。
尝试一些类似的事情:-
awk -F ''{if($3 != 0) {a = ($3); print $0, a;} else if ($3==0) print "No updates"}' file.in | mail...etc
答案1
awk '$3 == "x" { print $3 } $3 != "x" { print "no value" }' file.in | mail ...
或者
awk '{ print ($3 == "x" ? $3 : "no value") }' file.in | mail ...
或者
awk '$3 != "x" { $3 = "no value" } { print $3 }' file.in | mail ...
给定文件
1 2 3
2 3 x
4 5 x
这三个awk
程序将产生输出
no value
x
x
答案2
尝试
awk '{ print ($3!="x")?"No Updates":$3 }' infile | mail ...
答案3
我尝试通过下面的方法
g=`awk '{print NF}' l.txt| sort -nr | head -1`
对于 x 模式存在
for ((l=1;l<=$g;l++)); do awk -v l="$l" '$l == "x" {print "exists in"l"column"}' l.txt| sort -u; done |mail ..
for x 模式不存在
for ((l=1;l<=$g;l++)); do awk -v l="$l" '$l != "x" {print " doesnt exists in"l"column"}' l.txt|sort -u; done| mail
输入文件
[root@praveen_2 ~]# cat l.txt
10 x x
10 x x