How to убежал “.” with будьте or grep?

I have file with

denm.xyz
denm.abc
denm.def
denm_xyz
denm_abc
denm_def

I want to extract the ones with . in it.

I tried

grep "denm\.*" file
grep 'denm\.*' file

sed "/denm\.*/p" file
sed '/denm\.*/p' file

These things пахал matching everything in the file

However using awk

awk '/denm\./' file 

worked!!

How do I do same using grep or sed

6
задан 11 December 2015 в 02:07

4 ответа

Вы были близки, просто необходимо удалить *, что означает нуль или больше соответствия предыдущего маркера, . в этом случае. В результате эти demn_ также, показал в результате, поскольку он соответствовал условию нуля ..

, Таким образом, можно сделать:

grep 'denm\.' file.txt 

Так же в sed:

sed -n '/denm\./p' file.txt

Примечание, которое Вы пропустили -n опция sed без него sed, распечатает все строки также.

Там также столько находятся на одном уровне точности, может быть добавлен для получения точно, что Вы хотите в сложных случаях, но берете ее в качестве запуска.

Пример:

% grep 'denm\.' file.txt
denm.xyz
denm.abc
denm.def

% sed -n '/denm\./p' file.txt
denm.xyz
denm.abc
denm.def
13
ответ дан 23 November 2019 в 07:16

\.* означает "любое количество случаев символа .", включая нуль. Так как Ваши подчеркнутые имена файлов запускаются с denm сопровождаемый нулевыми случаями символа ., они подобраны. grep "denm\." file будет работать.

7
ответ дан 23 November 2019 в 07:16

Если все, в чем Вы нуждаетесь, является строками, которые имеют . в них, использовал grep с фиксированными строками вместо регулярных выражений:

grep -F . file

От man grep :

-F, --fixed-strings
      Interpret PATTERN as a  list  of  fixed  strings,  separated  by
      newlines,  any  of  which is to be matched.  (-F is specified by
      POSIX.)

С фиксированными строками, все специальные символы регулярного выражения теряют свое значение.

sed не имеет соответствующей опции.

3
ответ дан 23 November 2019 в 07:16

Я склонен использовать скобки вместо обратных косых черт для выхода:

egrep "denm[.].*" file
sed -r 's/denm[.]/.../'

Это сохраняет меня усилие по размышлению, если и как я должен выйти из обратных косых черт. (Финал .* избыточен здесь.)

1
ответ дан 23 November 2019 в 07:16

Другие вопросы по тегам:

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