LINUX.ORG.RU

$N = 3; # сколько строк отсечь
$a = "\n1\n2\n3\n4\n5\n";
$a = substr( $a, 0, rindex( $a, "\n") ) for (1 .. $N);
print $a;

anonymous
()
Ответ на: комментарий от sdio

$cat 1.pl
#!/usr/bin/perl
$b=1;
$a="123\n234\n345\n456\n567\n678\n789\n";
$a =~ s/(\n.*?){$b}$//;
print "$a";

$ ./1.pl
123
234
345
456
567
678
$

т.е. $b = 1, а удалены последние 2 строки.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, наглость наверное, но если не сложно, то точно так же, с удалением первых n строк как будет?

з.ы. Мне до понимания regexp-ов далеко, но буду учиться.

anonymous
()
Ответ на: комментарий от anonymous

>т.е. $b = 1, а удалены последние 2 строки.

Разве, мне кажется всё верно удалилось.

anonymous
()
Ответ на: комментарий от anonymous

$a =~ s/(.*?\n){$b}$//; -- удалить посл. N строк $a =~ s/^(.*?\n){$b}//; -- удалить первые N строк

sdio ★★★★★
()
Ответ на: комментарий от anonymous

Форматирование


$a =~ s/(.*?\n){$b}$//;  -- удалить посл. N строк
$a =~ s/^(.*?\n){$b}//;  -- удалить первые N строк

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.