Shell 使用awk比较文件中的两列

Shell 使用awk比较文件中的两列,shell,awk,scripting,Shell,Awk,Scripting,例如,我在文件中有如下数据 IP=0.0.0.0 FIRST=20140626 LAST=20140626 IP=1.1.1.1 FIRST=20140626 LAST=20140626 IP=2.2.2.2 FIRST=20140626 LAST=20140626 IP=3.3.3.3 FIRST=20140626 LAST=20140626 IP=4.4.4.4 FIRST=20140626 LAST=20140626 我需要比较每个IP的第一个coulmn和最后一个coulmn是

例如,我在文件中有如下数据

IP=0.0.0.0 FIRST=20140626 LAST=20140626

IP=1.1.1.1 FIRST=20140626 LAST=20140626

IP=2.2.2.2 FIRST=20140626 LAST=20140626

IP=3.3.3.3 FIRST=20140626 LAST=20140626

IP=4.4.4.4 FIRST=20140626 LAST=20140626
我需要比较每个IP的第一个coulmn和最后一个coulmn是否相同 我正在尝试使用awk搜索第一个和最后一个模式


非常感谢的任何帮助

不知道您的确切输出格式,这可能会有帮助:

awk -F'[= ]*' 'NF{print $2, ($4!=$6?"not ":"")"same"}' file
在您的示例中,它打印:

0.0.0.0 same
1.1.1.1 same
2.2.2.2 same
3.3.3.3 same
4.4.4.4 same

您可以尝试使用此awk命令根据第一个和最后一个ip的存在打印
相等
或不相等

$ awk -F[\ \=] '!NF{next} { if($4==$6) {print "Equal"} else print "Not Equal"}' file
Equal
Equal
Equal
Equal
Equal
这应该做到:

awk -F ' |=' '$4==$6'
这有点惯用,只有当
$4=$6

awk    '{split($1,i,"=");split($2,a,"=");split($3,b,"="); 
        if(a[2] == b[2]) print  i[2] " equal"; else print i[2]" not equal"; }' 
        input.txt
输出:

   0.0.0.0 equal
   1.1.1.1 equal
   2.2.2.2 equal
   3.3.3.3 equal
   4.4.4.4 equal

如果input.txt包含所需数据

是否要打印第一个和最后一个ip相同的行?@AvinashRaj正确的问题是“您尝试了什么?”
awk-F“=”'$4===$6{print$2]:是相同的“}”
没有尝试,这是怎么回事?我用awk搜索了这个模式,并剪切得到了第一列和最后一列,我现在需要对每个IPT进行比较。我只需要一个输出,即相等或不相等。为什么选民在更新后无法恢复投票?或者为什么他们不能提供一个原因?谢谢,我正在这样尝试。有什么办法可以更新我的语法吗?$适用于cat/tmp/服务器列表中的K;先做=
grep$K/tmp/aa.txt | awk'{print$2}'/tmp/aa.txt | cut-c7-14
,&LAST=
grep$K/tmp/prav.txt | awk'{print$2}'/tmp/aa.txt | cut c7-14
;如果[$LAST-均衡$FULL];然后呼应“平等”;否则呼应“不平等”;fi;已完成-bash:[:参数太多不相等-bash:[:参数太多不相等-bash:[:参数太多不相等-bash:[:参数太多不相等-bash:[:参数太多不相等-bash:[:争论太多UNEQUAL@user3779820作为另一个问题提问。因为编辑你的问题不是一个好主意。@zx81你看错了地方,你看到的是我也被否决了。我从来没有否决过任何一个答案或问题,你可以看到在屏幕底部,我投了17票,所有的都是赞成票。12个答案5个问题。但我非常感谢评论时的否决票和编辑后的udone。我不会否决任何答案,但我猜您的cmd不会输出“不相等”行?@kent我认为要求很模糊,但我的回答很有效,让我们看看投票人是否会解释。cheers@kent我不认为你投了反对票,顺便说一句,我从你的答案中学到了很多:)从一段时间以来,我不会对任何答案投反对票@所以,不仅仅是因为这个问题。因为我认为发布答案的人是在尝试g帮助他人。答案可能不够好,但不值得被否决。好吧,这可能违反了SO的规则,但是……我个人的意见。。