Что делает эта команда egrep?

Я запускаю эту команду

egrep "\" string_demo | wc -l

Я получил вывод ниже:

akshay@akshay-K53SC:~/shell$ egrep "\" string_demo | wc -l
> abc
> pqr
> xyz
> 

«>» будет продолжаться, пока я не нажму Ctrl + D . Так что же это такое?

Кроме того, какова точная разница между grep, egrep и fgrep?

1
задан 15 April 2015 в 22:34

3 ответа

Когда Вы выходите egrep "\" string_demo | wc -l, Ваша оболочка рассматривает \ как Escape обратной косой черты и продолжающий принимать вход PS2 пока Вы не вводите EOF (Ctrl + D).

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

grep '\\' file.txt

Пример:

$ grep '\\' file.txt 
eagle,dove\ ,cat

Здесь я внес два изменения, во-первых использовали одинарные кавычки ('') и во-вторых используемый \\ сказать grep то, что я хочу искать литерал \, иначе grep покажет мне следующую ошибку:

$ grep '\' file.txt 
grep: Trailing backslash

Короче говоря Вы управляете, может быть записан следующими способами:

  • Использование замены процесса Bash:

    wc -l < <(grep '\\' string_demo) 
    
  • Используя обычный метод:

    grep '\\' string_demo | wc -l
    

**** Не использовать egrep, это удерживается от использования в пользу grep -E.

Проверьте это сообщение U&L для получения различий между grep, grep -E & grep -F.

5
ответ дан 16 April 2015 в 08:34

">" продолжится, пока я не нажму Ctrl + D. Таким образом, что это?

  • > используется ударом, чтобы указать, что он ожидает более вход. Который является, почему это заканчивается только, когда ctrl + D нажимается, который моделирует EOF. В Вашей команде, "\" string demo не полный patteren, потому что второй " оставлен \ и нуждается в завершении, соответствующем ".

, каково точное различие между grep, egrep и fgrep?

От man egrep:

  • egrep тот же , как grep-E. fgrep тот же , как grep-F. rgrep тот же как grep-r. Прямой вызов или как egrep или как fgrep , удержал от использования , но обеспечивается для разрешения исторических приложений , которые полагаются на них для выполнения неизмененный.*

  • grep-E: обеспеченный шаблон расширенное регулярное выражение .

  • grep-F: обеспеченный шаблон является подобранным verbatim
  • grep-r: рекурсивно найдите во всех файлах. Имя каталога обеспечивается вместо имени файла
0
ответ дан 16 April 2015 в 08:34

egrep строки поисков с тем, что Вы говорите этому искать в кавычках из файла, wc -l количество количеств строк. Вы в основном говорите egrep считать строки с обратной косой чертой в них и затем позволять wc -l для подсчета, сколько существует тех строк.

1
ответ дан 16 April 2015 в 08:34

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

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