Как вернуться к началу файла в perl однострочном? - PullRequest
0 голосов
/ 10 октября 2018

После просмотра файла один раз, я хотел бы вернуться к началу файла и удалить записи, основываясь на моем исходном проходе по файлу, но я не знаю, как вернуться к началу файла.У меня есть имя входного файла в одну строку, но не дескриптор файла.Нужно ли иметь файловую ручку?Как я могу получить его из имени файла?

Спасибо.

1 Ответ

0 голосов
/ 10 октября 2018

Файловый дескриптор ARGV .Хотя -i может вызывать вопросы о поиске, он работает в моих тестах

perl -i.bak -pe'
    $_ = "line: $_"; 
    if ($. == 2) { seek ARGV, 0, 0 }
' test.txt

Если вы видите проблемы с -i или резервное копирование (у меня не работает) без них и делаете это вручную.

С помощью переключателя -p каждый раз печатается $_.Код, показанный в комментарии, использует его, но вопрос, по-видимому, подразумевает, что не каждую строку нужно печатать, так как он хочет « удалить записи » с самого начала.Если это так, используйте -n вместо -p, который также открывает файл и перебирает его строки, но не печатает.Затем добавьте операторы печати по мере необходимости.

Как правило, очень полезно прочитать Операторы ввода / вывода в perlop , и как только вы обдумаете это, я действительно рекомендую это.

Похоже, что могут быть лучшие подходы к вашей проблеме, но нам нужно больше подробностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...