awk
- инструмент, наиболее естественно подходящий для разбора по столбцам:
awk '{if ($4 !~ /^[0-9]+$/) { print "Error! Column 4 is not an integer:"; print $0; exit 1}}' data.txt
По мере усложнения процесса обнаружения ошибок вы, вероятно, захотите поместить сценарий awk в файл и вызвать его с помощью awk -f verify.awk data.txt
.
Редактировать: в форме, которую вы поместите в verify.awk:
{
if ($4 !~/^[0-9]+$/) {
print "Error! Column 4 is not an integer:"
print $0
exit 1
}
}
Обратите внимание, что я сделал выход awk с ненулевым кодом, чтобы вы могли легко проверить это в своем вызывающем скрипте с помощью чего-то вроде этого в bash:
if awk -f verify.awk data.txt; then
# action for success
else
# action for failure
fi
Вы можете использовать grep, но он не распознает столбцы. Вы застряли бы писать шаблоны, соответствующие столбцам.