Файловый дескриптор ARGV .Хотя -i
может вызывать вопросы о поиске, он работает в моих тестах
perl -i.bak -pe'
$_ = "line: $_";
if ($. == 2) { seek ARGV, 0, 0 }
' test.txt
Если вы видите проблемы с -i
или резервное копирование (у меня не работает) без них и делаете это вручную.
С помощью переключателя -p
каждый раз печатается $_
.Код, показанный в комментарии, использует его, но вопрос, по-видимому, подразумевает, что не каждую строку нужно печатать, так как он хочет « удалить записи » с самого начала.Если это так, используйте -n
вместо -p
, который также открывает файл и перебирает его строки, но не печатает.Затем добавьте операторы печати по мере необходимости.
Как правило, очень полезно прочитать Операторы ввода / вывода в perlop , и как только вы обдумаете это, я действительно рекомендую это.
Похоже, что могут быть лучшие подходы к вашей проблеме, но нам нужно больше подробностей.