Странное поведение «ls -a | grep ^ \. "

Я хотел перечислить содержимое pwd и отобразить только файл, начинающийся с точки. Я попробовал ls -a | grep ^\. ls -a | grep ^\. но я не могу понять, почему вывод содержит также файлы, которые не начинаются с точки. Например:

 Pictures .pip .pki .profile projects Public 

Я знаю, что я могу добиться того, что хочу с помощью ls -ld .* Мне просто интересно об этом поведении grep, которое я не могу объяснить.

3 Solutions collect form web for “Странное поведение «ls -a | grep ^ \. "”

Ответить аргумент grep , таким образом ls -a | grep '^\.' ls -a | grep '^\.'

Причина этого в том, что оболочка обрабатывает \. и превращает его обратно в равнину . , который grep обрабатывает как односимвольный шаблон. Если есть сомнения, всегда указывайте строку, содержащую (или может содержать) символ, который является особым для оболочки.

Вам нужно добавить регулярное выражение grep в кавычки.

 ls -a | grep '^\.' 

Примечание. Не разбирайте вывод команды ls .

Если вы выполните cmd ls -a | grep ^ \. то grep не учитывает «\» как особый символ и значение «.». не убегайте.

Когда мы используем cmd ls -a | grep "^ \". то grep считает «\» особым символом и значением «.». убегает. Это даст вам результат, как ожидалось.

Если вы хотите использовать grep cmd без кавычек, вам также следует избегать символа «\». Вы можете ожидать ожидаемого результата без двойных кавычек, следуя команде. ls -a | grep ^ \\.

Подробнее о значении специальных символов в Regex см. Следующую ссылку. http://www.regular-expressions.info/quickstart.html

  • grep с большим количеством файлов, который содержит много строк?
  • сравнение регулярных выражений и подстроки
  • символы egrep group в цитате
  • Grep для ближайшего появления строки перед рисунком
  • Использование rpm / grep для проверки того, установлены ли несколько сервисов - как один вкладыш?
  • Каков наилучший способ найти список нескольких строк в большом текстовом файле
  • Как grep stderr?
  • Насколько хорошо работает grep / sed / awk на очень больших файлах?
  • Лучший способ grep большого двоичного файла?
  • Почему grepping с цветом ничего не возвращает?
  • Найти путь, который имеет конкретную подкаталоги
  • Linux и Unix - лучшая ОС в мире.