Как это выражение [t] ricky bracket в grep работает?

Пакеты внутри основного хранилища Ubuntu активно обновляются в Canonical. (Чтобы быть частью установки по умолчанию, пакет должен находиться внутри основного.)

Однако для пакетов, таких как nginx, которые находятся в «юниверсе», я не ожидал своевременных обновлений безопасности. Это связано с тем, что эти пакеты поддерживаются добровольцами, а не каноническими. Было бы разумно ожидать, что Canonical будет постоянно отслеживать десятки тысяч пакетов, которые существуют во вселенной.

31
задан 21 June 2012 в 19:22

18 ответов

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 25 July 2018 в 18:24

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 31 July 2018 в 10:31

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 31 July 2018 в 11:33

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 2 August 2018 в 00:36

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 4 August 2018 в 16:06

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 6 August 2018 в 00:44

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 7 August 2018 в 18:09

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 10 August 2018 в 06:56

Выражение квадратной скобки является частью оболочки bash (и других оболочек). Соответствие шаблону символа класса grep.

Программа grep по умолчанию понимает основные регулярные выражения POSIX. С этим вы можете определить классы символов. Например, ps -ef | grep [ab9]irefox найдет « a irefox», « b irefox», « 9 irefix», если они существуют, но не « ab irefox ".

Команда grep [a-zA-Z0-9]irefox даже найдет все процессы, начинающиеся с одной буквы или числа, и заканчивается на« irefox ».

So ps -ef | grep firefox ищет строки с firefox в нем. Поскольку сам grep-процесс имеет в нем «firefox», grep также находит это. Добавляя [], мы ищем только класс символов «[f]» (который состоит только из буквы «f» и поэтому эквивалентен только «f» без скобок). Преимущество скобок теперь состоит в том, что строка «firefox» больше не появляется в команде grep. Следовательно, сам grep не будет отображаться в результате grep.

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

Если вы хотите исправить второй результат, вы можете использовать их следующим образом:

ps -ef | grep [f]irefox  > data
grep firefox data

(Ссылка)

47
ответ дан 15 August 2018 в 18:53
  • 1
  • 2
    Рад был помочь. Хорошего дня :) – jokerdino♦ 20 June 2012 в 12:29
  • 3
    В bash квадратные скобки будут передаваться в grep, если нет совпадения для слова, в котором они находятся (т. Е. Нет файла с именем «firefox» в текущем каталоге). Однако grep также имеет классы символов, а [f] в grep - это то же самое, что и f. – Daniel Hershcovich 25 June 2012 в 23:01
  • 4
    Спасибо, Дэниэл. ps -ef | grep '[f]irefox' является подтверждением, я думаю, поскольку оболочка не может изменять аргумент, но результат тот же. – Thorsen 29 June 2012 в 19:14
  • 5
    На самом деле в этом случае я не думаю, что это интерпретируется оболочкой перед grep. Я думаю, [f] является скобкой соответствия шаблону регулярного выражения для классов символов. Как и в [a-z0-9] irefox & quot; grep будет соответствовать & quot; airefox & quot; и "0irefox" также. Вы можете легко увидеть, что это не встроенный bash, поскольку echo $([f]) возвращает ошибку. – con-f-use 24 August 2012 в 19:18

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

6
ответ дан 25 May 2018 в 09:56

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 25 July 2018 в 18:24

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 31 July 2018 в 10:31

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 31 July 2018 в 11:33

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 2 August 2018 в 00:36

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 4 August 2018 в 16:06

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 6 August 2018 в 00:44

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 7 August 2018 в 18:09

Причина в том, что строка

grep firefox

соответствует шаблону firefox, но строка

grep [f]irefox

не соответствует шаблону [f]irefox (который является эквивалентно шаблону firefox).

Вот почему первый grep соответствует своей собственной командной строке процесса, а второй - нет.

7
ответ дан 10 August 2018 в 06:56

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

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