Почему моя команда grep не работает?

Я знаю, что это старый пост. Размер шрифта пользовательского интерфейса Chrome обычно можно изменить, изменив размер шрифта с фиксированной шириной -, если вы работаете в среде GTK. Если вы используете KDE Plasma, вам необходимо изменить стиль приложения GNOME/GTK. Вы можете найти этот параметр в разделе «Стиль приложения» в «Системных настройках».

0
30.04.2020, 23:26
2 ответа

Регулярное выражение, которое вы используете, dd*, вообще не заключено в кавычки в оболочке. Это означает, что оболочка будет использовать его в качестве шаблона подстановки имен файлов и расширит его до всех совпадающих имен файлов (dd1, dd2и dd3).

Команда, таким образом, будет

grep -E dd1 dd2 dd3 dd1 dd2 dd3

Это выполняется grepс шаблоном dd1в файлах dd2, dd3, dd1, dd2и dd3. Вы получаете две строки из файла dd3, потому что есть одна строка, соответствующая выражению, но файл встречается дважды в списке файлов.

Чтобы дать образец grepнерасширенному оболочке,цитировать:

grep 'dd*' dd1 dd2 dd3

или, что то же самое,

grep -E 'd+' dd[123]
3
28.07.2021, 11:59

Шаблон нужно указывать в кавычках, иначе он будет расширен оболочкой.

dd*расширяется доdd1 dd2 dd3

Итак, вы действительно бежите:

grep -E dd1 dd2 dd3 dd1 dd2 dd3

Вы хотите

grep -E 'dd*' dd1 dd2 dd3

Но чтобы получить все строки с d, вы можете просто запустить:

grep -F 'd' dd1 dd2 dd3
1
28.07.2021, 11:59

Теги

Похожие вопросы