我在文件中有以下数据并需要这样的输出 - 我以非常糟糕/艰难的方式寻找一些聪明的方法。
文件1.日志:
A B C
1 4 6
2 4 4
我们应该比较 col A 的值,即如果匹配则为 1 = 2,否则为不匹配。
a1=$(awk -F "|" '{print $3}' file1.log|xargs|awk '{print $1}')
a2=$(awk -F "|" '{print $3}' file1.log|xargs|awk '{print $2}')
if [[ "$a1" == "$a2" ]]; then
echo "MATCHED"
else
echo "NOT-MATCHED"
fi
答案1
尝试这个命令:
awk 'BEGIN {p=""} {if(p==$1) {print "matched"; p=$1} else {print "not matched"; p=$1}}'
file1.log
你得到:
not matched
not matched
not matched
跳过第一行:
awk 'BEGIN {p=""} NR>1{if(p==$1) {print "matched"; p=$1} else {print "not matched"; p=$1}
}' file1.log
not matched
not matched
您可能需要在上述语句中使用 NR>2。这完全取决于您要做什么——您的问题本身就不清楚。