Я запускаю эту команду
egrep "\" string_demo | wc -l
Я получил вывод ниже:
akshay@akshay-K53SC:~/shell$ egrep "\" string_demo | wc -l
> abc
> pqr
> xyz
>
«>» будет продолжаться, пока я не нажму Ctrl kbd> + D KBD>. Так что же это такое?
Кроме того, какова точная разница между grep
, egrep
и fgrep
?
Когда Вы выходите 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
.
">" продолжится, пока я не нажму Ctrl + D. Таким образом, что это?
"\" string demo
не полный patteren, потому что второй "
оставлен \
и нуждается в завершении, соответствующем "
. , каково точное различие между grep, egrep и fgrep?
От man egrep
:
egrep тот же , как grep-E. fgrep тот же , как grep-F. rgrep тот же как grep-r. Прямой вызов или как egrep или как fgrep , удержал от использования , но обеспечивается для разрешения исторических приложений , которые полагаются на них для выполнения неизмененный.*
grep-E: обеспеченный шаблон расширенное регулярное выражение .
egrep
строки поисков с тем, что Вы говорите этому искать в кавычках из файла, wc -l
количество количеств строк. Вы в основном говорите egrep считать строки с обратной косой чертой в них и затем позволять wc -l
для подсчета, сколько существует тех строк.