Следующее делает именно то, что было задано ... (отмечая два пробела перед "- Все" и один пробел в несоответствующем регистре, а f1 и f2 - строчные).Если мы хотим использовать имена файлов вместо f1 и f2, переменная FILENAME доступна
#! /usr/bin/awk -f
BEGIN {
FS = "|"
split("", f1)
}
NR == FNR { # this is true only for the first file processed
f1[FNR] = $0
next
}
$0 == f1[FNR] { # with the second file, if lines are equal...
print "f1 - " f1[FNR] " - f2 - " $0 " - All columns are matching"
next
}
{ # if the lines are not equal, split and find the columns not equal
sz = split(f1[FNR], f)
if (NF > sz)
sz = NF
c = ""
for (i=1; i<=sz; ++i)
if (f[i] != $i) {
c = i++
break
}
for (; i<=sz; ++i)
if (f[i] != $i)
c = c " and " i
print "f1 - " f1[FNR] " - f2 - " $0 " - Column " c " are not matching"
}