Могу ли я предположить, что вы используете X Window System и какой-либо оконный менеджер (KDE/gnome/etc.)? Существует ряд терминальных приложений (например, Konsole), которые имеют встроенное меню, позволяющее выполнять функции копирования/вставки. Таким образом, вы можете:
Или я неправильно понял ваши реальные потребности?
No del todo seguro, pero esto podría ayudar
#!/usr/bin/perl
use strict;
use warnings;
my $fname = "deep.txt";
open(my $fh, "<:encoding(ASCII)", $fname) || die "cannot open $fname for reading";
my $num = 0;
while(<$fh>)
{
$num = substr $_, 0, 3 if eof;
}
close($fh) || warn "cannot close $fname";
print "Oops, last line doesn't start with 999!\n" if $num != 999;
La comprobación eof
ayuda a saber si se está leyendo la última línea del archivo
El bucle while también se puede acortar a una -línea:
eof and $num = substr $_, 0, 3 while(<$fh>);
Lectura adicional:
Использование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
(количеству прочитанных строк/записей ).