Я пытаюсь найти строки, которые начинаются с "1", используя
ls -1 | grep ^1*
но он возвращает строки, которые не начинаются с 1. Что мне здесь не хватает?
Я пытаюсь найти строки, которые начинаются с "1", используя
ls -1 | grep ^1*
но он возвращает строки, которые не начинаются с 1. Что мне здесь не хватает?
Ответы:
Хотя это не отвечает на ваш вопрос, это лучшее решение для вашей цели:
ls -ld 1*
Вы можете использовать глобус оболочки для отображения списка всех файлов, которые начинаются с 1
. Обратите внимание, что *
в globbing оболочки имеет другое значение, чем регулярные выражения.
*
- это подстановочный знак, означающий «0 или более любого символа». Значение регулярного выражения объясняется в ответе Отокана.
^ 1. * соответствует всей строке или, как сказано выше, ^ 1 получил строку, содержащуюся в строке.
В разных стилях регулярных выражений используются разные символы, представляющие символы, некоторые параметры указывают, какой стиль вы хотите. и различные параметры указывают, хотите ли вы соответствовать всей строке, или только ее части, или всему вводу как одной строке.
ls
вывода, у вас возникнут проблемы, если имена файлов содержат какие-то странные символы, такие как переводы строк ... Многие другие команды (почему-то нетls
, по крайней мере, не та версия, которую я должен проверять) есть возможность задать нулевой разделенный вывод, который затем можно безопасно обработатьgrep -z