Когда полезно использовать «grep - SOMEPATTERN»?

8

Под Linux / AIX, где когда-либо, когда это полезно использовать --, как в этой команде:

grep -- SOMEPATTERN
Гаско Питер
источник

Ответы:

18

Когда «SOMEPATTERN» запускается или может начинаться (например, если это переменная, подобная "$PATTERN"которой у вас нет полного контроля) с -символом (тире).

Также с GNU grep (если $POSIXLY_CORRECTон не включен) полезно, если другие аргументы (имена файлов) могут начинаться с -.

Кроме того, вы можете сделать

grep -e -SOMEPATTERN- -- file1 file2 -xxx-

--отмечает конец вариантов. Это полезно везде, где неопционные аргументы могут начинаться с символа a dash, и это не вредит, так что это хорошая привычка - использовать его.

Стефан Шазелас
источник
8

Когда шаблон начинается с тире, в противном случае grep будет думать, что это вариант. Скажем, вы ищете "-a" в тексте:

grep -a file.txt

Затем grep попытается найти шаблон «file.txt» в стандартном вводе, используя эту опцию -a. Поэтому вам нужно сделать

grep -- -a file.txt
январь
источник
3
Это не только для grep.
Бернхард