Вопрос

Я работаю в оболочке, пытаясь найти символы NUL в кучке CSV-файлов (о которых нынёт импортер CSV для Python, но это в другой раз), используя так называемую-гордую-вечно-умную- себя:

родовое слово

За исключением того, что я не вижу имени файла. Предположительно неявный оператор <>, которым perl -ne обертывает мой скрипт, просто использует дескриптор файла @ARGV / ARGV, но ни одно из вышеперечисленных не дает мне имя текущего файла.

Как мне увидеть текущее имя файла (и, в идеале, номер строки) в приведенном выше примере?

Это было полезно?

Решение

$ARGV - это имя текущего файла, а $. - текущий номер строки;см. perldoc perlvar и операторы ввода-вывода в perldoc perlop.(Обратите внимание, что $. не сбрасывается между файлами; это обсуждается в perldoc -f eof.)

И я не совсем уверен, чего вы пытаетесь достичь с помощью этого кодового кода;он предоставит вам номер дескриптора файла, который, вероятно, равен 3, добавленный к списку имен файлов, разделенных пробелами (который, вероятно, должен быть только один из-за print), а затем текущая строка, которая будет включать xargs -n и другие потенциально сбивающие с терминалаперсонажей.

Другие советы

Выполните примерно следующее (здесь я искал "x" в файлах .pl):

родовое слово

И да, его можно сократить с помощью переключателя -n:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top