Как FGREP 2 тире '-'? - PullRequest
       72

Как FGREP 2 тире '-'?

3 голосов
/ 30 апреля 2010

fgrep -ircl --include=*.{sql} "[--]" *, кажется, не делает трюк. Пожалуйста, помогите ...

Спасибо за ответы, ребята. Я пытаюсь заменить «-» на «#» и мне тяжело. Я создал новый вопрос здесь. Если бы вы могли помочь, это было бы здорово.

Ответы [ 5 ]

4 голосов
/ 30 апреля 2010

Это похоже на класс символов регулярного выражения, соответствующий (одиночному) - символу. Строка -- обычно используется для обозначения «больше не следуют параметры», поэтому, возможно, вам следует попробовать

fgrep -ircl --include=*.{sql} -- -- *

, то есть "конец параметров", за которым следует фактическая строка, которую вы хотите найти.

1 голос
/ 30 апреля 2010

Если вы хотите fgrep всех файлов, которые заканчиваются на .sql, тогда используйте

fgrep -ircl --include=*.sql -- -- *

или (обратите внимание на запятую в {sql,}:

fgrep -ircl --include=*.{sql,} -- -- *

Если вы хотите использовать более одного типа расширения, используйте что-то вроде

fgrep -ircl --include=*.{sql,txt} -- -- *

Как уже упоминали другие, первый -- говорит fgrep прекратить искать флаги и опции. Второй -- - это шаблон с фиксированной строкой.

1 голос
/ 30 апреля 2010

Символы тире могут находиться только в первой позиции в скобках [], поскольку они указывают диапазон [a-z] или [0-9]. Вы могли бы сделать [-] [-].

1 голос
/ 30 апреля 2010

Вам необходимо экранировать символы тире в квадратных скобках, которые используются для представления диапазонов внутри класса символов (например, [a-z]). В этом случае, однако, вам не нужно использовать квадратные скобки для совпадения с литеральной строкой.

Наконец, -- - это специальная последовательность, которая вызывает анализ аргумента для остановки. Чтобы включить литерал -- в качестве аргумента, вам придется явно прекратить разбор аргумента:

fgrep -ircl --include=*.{sql} -- -- *
0 голосов
/ 30 апреля 2010

Попробуйте использовать одинарные кавычки '[--]' вместо "[--]"

fgrep -ircl --include=*.{sql} '[--]' *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...