Использование grep для поиска всех подстрок строк, которые могут содержать специальные символы

Использовать экран. Это прекрасно, когда вам нужно несколько терминалов. Специально, когда вы подключены через ssh, и вы не хотите запускать другой сеанс.

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

Другим аналогичным приложением, которое обеспечивает то же самое, является [d1 ] экран .

3
задан 5 April 2017 в 08:31

5 ответов

Параметр -w делает grep look for words, поэтому он будет показывать crk, если он окружен символами, отличными от слова. Из man grep:

-w, --word-regexp Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore.

_ является символом слова, поэтому crk_op не будет соответствовать crk с -w.

Скрученное регулярное выражение "[^ ]*crk[^ ]*" ] работает, потому что он позволяет любое количество непространственных символов между границами слов, которые требуется grep.

Просто выполните:

grep -rn --include '*.c' . -e crk

Вам не нужно qoute . для текущего каталога.

2
ответ дан 22 May 2018 в 23:58
  • 1
    Хм, так что «_» - это символ слова, но «[», например, нет. Как странно... – Aroto 5 April 2017 в 08:43
  • 2
    @ user3813122 не особо, если вы знаете историю программирования. _ разрешено в именах переменных, так как со времени создания grep (по крайней мере), и естественно видеть имя переменной как слово. – muru 5 April 2017 в 08:45

Параметр -w делает grep look for words, поэтому он будет показывать crk, если он окружен символами, отличными от слова. Из man grep:

-w, --word-regexp Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore.

_ является символом слова, поэтому crk_op не будет соответствовать crk с -w.

Скрученное регулярное выражение "[^ ]*crk[^ ]*" ] работает, потому что он позволяет любое количество непространственных символов между границами слов, которые требуется grep.

Просто выполните:

grep -rn --include '*.c' . -e crk

Вам не нужно qoute . для текущего каталога.

2
ответ дан 18 July 2018 в 15:31

Параметр -w делает grep look for words, поэтому он будет показывать crk, если он окружен символами, отличными от слова. Из man grep:

-w, --word-regexp Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore.

_ является символом слова, поэтому crk_op не будет соответствовать crk с -w.

Скрученное регулярное выражение "[^ ]*crk[^ ]*" ] работает, потому что он позволяет любое количество непространственных символов между границами слов, которые требуется grep.

Просто выполните:

grep -rn --include '*.c' . -e crk

Вам не нужно qoute . для текущего каталога.

2
ответ дан 24 July 2018 в 20:39

Параметр -w делает grep look for words, поэтому он будет показывать crk, если он окружен символами, отличными от слова. Из man grep:

-w, --word-regexp Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore.

_ является символом слова, поэтому crk_op не будет соответствовать crk с -w.

Скрученное регулярное выражение "[^ ]*crk[^ ]*" ] работает, потому что он позволяет любое количество непространственных символов между границами слов, которые требуется grep.

Просто выполните:

grep -rn --include '*.c' . -e crk

Вам не нужно qoute . для текущего каталога.

2
ответ дан 31 July 2018 в 13:34

Параметр -w делает grep look for words, поэтому он будет показывать crk, если он окружен символами, отличными от слова. Из man grep:

-w, --word-regexp Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore.

_ является символом слова, поэтому crk_op не будет соответствовать crk с -w.

Скрученное регулярное выражение "[^ ]*crk[^ ]*" ] работает, потому что он позволяет любое количество непространственных символов между границами слов, которые требуется grep.

Просто выполните:

grep -rn --include '*.c' . -e crk

Вам не нужно qoute . для текущего каталога.

2
ответ дан 31 July 2018 в 23:40

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

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