AWK 简单的方法 - 需要 bash 的帮助

AWK 简单的方法 - 需要 bash 的帮助

我在文件中有以下数据并需要这样的输出 - 我以非常糟糕/艰难的方式寻找一些聪明的方法。

文件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。这完全取决于您要做什么——您的问题本身就不清楚。

相关内容