如何在awk中使用if else?

时间:2014-04-05 11:49:12

标签: bash awk

我有一个文本文件,其内容如下所示,

foo.txt

firefox:
Installed: 24.0+build1-0ubuntu1
Candidate: 24.0+build1-0ubuntu1

如果InstalledCandidate的值不相同,我想在第一行打印第一个字段。如果它相同则空输出就足够了。

我试过了,

cat foo.txt | awk '$1~/^Installed:/ {var=$2;next} $1~/^Candidate:/ {var1=$2;next} NR==1 {pkg=$1} {if(var != var1) { print pkg;} }'

但它没有显示任何内容。如果你提供awk解决方案会更好。

1 个答案:

答案 0 :(得分:1)

你很亲密:

$ cat foo.txt
firefox:
Installed: 24.0+build1-0foo
Candidate: 24.0+build1-0bar

$ awk '$1~/^Installed:/ {var=$2;next} $1~/^Candidate:/ {var1=$2;next} NR==1 {pkg=$1} END {if(var != var1) { print pkg;} }' foo.txt
firefox: