Цель состоит в том, чтобы проверить, что для входного файла каждый столбец содержит одинаковые цифры.по сравнению с эталонным файлом ..
Я нашел способ проверить, имеет ли формат файла точно такую же структуру (одинаковое копирование по столбцу)
ref_file
1111 2222 333 4
file
1266 2233 344 1
1122 3333 444 1
1111 2222 222 1
1112 2220 22 1
1111 2222 222
1111 2222 222 1
Код, который я пробую.
dd=`awk ' {for(i=1;i<=NF;i++)$i=length($i)}NF' ref_file | awk '{ for(i=1; i<=NF;i++) j+=$i; print j; j=0 }'`
awk ' {for(i=1;i<=NF;i++)$i=length($i)}NF' file |
awk '{ for(i=1; i<=NF;i++) j+=$i; print $0" " j; j=0 }' |
awk '{if($NF!~'$dd')print $0 " error"}' | wc -l | awk '{if($1>0) print "FILE FORMAT WRONG "}'
Я считаю, что есть легкийспособ сделать это.
с моим кодом.Я считаю число для каждого столбца и суммирую каждую строку, если сумма в какой-либо строке не совпадает с общим количеством, то во входном файле есть ошибки.IE, строки 4 и 5. Не обязательно печатать строки с ошибкой.Только если хотя бы одна строка не имеет одинаковую структуру эталонного файла .. покажите сообщение "Неверный формат ФАЙЛА". Что-то в этом роде.
Заранее спасибо