grep и []

Перейдите к значку передач в правом верхнем углу экрана и:

нажмите «Параметры раскладки клавиатуры системы» ... (нижний правый угол). Кнопка блокировки кнопок блокировки (4-й вниз). Прокрутка вниз и выберите «Swap ESC и Caps Lock».

Сделано!

1
задан 7 November 2015 в 16:54

3 ответа

В первом случае вы ищете любой процесс со словом thunderbird. Существуют две команды thunderbird и grep.

Во втором вы также ищете символ t а затем hunderbird, поскольку [t] означает совпадение с любыми перечисленными символами в квадратной скобке, из которых есть только одна, буква t, но на этот раз ваши два процесса:

user  17410     1  0 10:09 ?        00:00:20 /usr/lib/thunderbird/thunderbird
user  18990 15896  0 12:25 pts/1    00:00:00 grep --color=auto [t]hunderbird

Второй процесс не соответствует, потому что rexep [t] hunderbird не соответствует литеральной строке [t]hunderbird, поскольку] предотвращает совпадение.

6
ответ дан 23 May 2018 в 16:00
  • 1
    Просто TL; DR для ленивых читателей: обрабатывайте вывод второго ps как текст и понимайте, что второй grep соответствует t и hunderbird, а не [, t, ] и `hunderbird, что второй процесс выглядит как строка – Sergiy Kolodyazhnyy 7 November 2015 в 19:12
  • 2
    @Serg, возможно, вы должны проверить комментарии ниже ответа terdon, касающиеся вопроса о сроках. – heemayl 7 November 2015 в 19:56

Во-первых, будет ли grep --color=auto thunderbird отображаться в таблице процессов и, следовательно, на выходе ps зависит от времени, то есть, насколько занята ваша система и amp; сколько времени требуется для ps, чтобы показать что-то на его выходе (путем разбора таблицы процессов), который начался одновременно, grep в этом случае. Хотя это очень маловероятный случай, и мы можем предположить, что grep появится на выходе ps.

Теперь [] представляет собой синтаксис grep, который означает (если не следовать другим тоны) соответствуют любому из символов внутри []. Поэтому, когда вы используете grep '[t]hunderbird', grep рассматривает [t], чтобы он соответствовал только t, в результате он не появлялся на выходе.

При использовании grep thunderbird, если это делает это путь в таблице процессов, мы найдем процесс grep на выходе, поскольку мы grep -ping для одного и того же объекта, т. е. grep thunderbird.

Также обратите внимание, что grep является псевдоним grep --color=auto, заставляющий его также отображаться на выходе.

3
ответ дан 23 May 2018 в 16:00

Параметр [] в grep используется для сопоставления символов. Если взять grep [tb]all my_file.txt

Он эквивалентен

grep tall my_file.txt
grep ball my_file.txt

Он выполнит grep с принятием t + all и затем выполнит grep, взяв b + все.

Например: если мы хотим найти слово ABC или BBC в файле, мы можем использовать следующую команду grep:

grep [AB]BC file_name 

Здесь [] будет делать grep, чтобы развернуть слово, взяв A, тогда он будет расширять слово с помощью B, создавая таким образом ABC и BBC.

1
ответ дан 23 May 2018 в 16:00

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

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