Использованиеawk
:
awk 'END { if ($0 !~ /^999/) print "error"; else printf("Lines in file: %d\n", NR) }' file
Если последняя строка файла не начинается с 999
, будет отображаться строка error
. В противном случае количество строк в файле будет отображаться в коротком сообщении.
То же самое с Perl:
perl -ne '$line=$_; END { if ($line !~ /^999/) { print "error\n" } else { printf "Lines in file: %d\n", $. } }' file
Сценарий (украшен):
$line = $_;
END {
if ( $line !~ /^999/ ) { print "error\n" }
else { printf "Lines in file: %d\n", $. }
}
Это устанавливает $line
на текущую строку ввода.
Блок END
выполняется, когда дальнейший ввод недоступен. Он проверяет, начинается ли последний $line
с 999
или нет, и выводит либо ошибку, либо количество строк. Переменная $.
— это специальная переменная Perl, которая соответствует NR
вawk
(количеству прочитанных строк/записей ).