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

Да. Пакеты проверяются сообществом (поэтому 1 может установить некоторую вредоносную программу, но эта новость будет быстро распространяться среди всех пользователей).

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

licensing имеет немного больше информации:

Переход через пакеты MOTU, которые еще не находятся в Ubuntu, требует дополнительной проверки и проходит специальный процесс проверки, прежде чем они будут загружены и получить окончательный обзор архивных администраторов. Более подробную информацию о процессе обзора, включая критерии, которые будут применяться, можно найти на странице «Обзор обозревателей». Разработчикам рекомендуется изучить свои собственные пакеты, используя эти рекомендации, прежде чем отправлять их на рассмотрение. Чтобы получать отчеты об ошибках более высокого качества, напишите apport hook для вашего пакета.

Это сказало: общая идея. Если вы обнаружите что-то подозрительное, вы сообщаете об этом на стартовой панели, askubuntu, ubuntuforums, и кто-то его поднимет.

Что может случиться, так как создатель вредоносного ПО делает действительный пакет, принимает его и затем делает обновление который добавляет вредоносное ПО. По крайней мере, один из многих из них всегда ловит это, и он / она сообщит об этом где-нибудь. Таким образом, он не попадет на множество машин. (попытка получить его на наших машинах слишком велика для потенциального вознаграждения: гораздо проще использовать таргетинг на машины для Windows).

Пример того, что происходит с шмелями. Кто-то пропустил пробел и / usr был удален ... некоторые люди пострадали, 1 сообщение с предупреждением с красными флагами, и теперь мы все знаем. Создатель исправляет его (быстрее скорости света), но ущерб был нанесен нескольким системам. И это была ошибка, а не преднамеренная, так что это может случиться;)

1
задан 30 July 2017 в 14:09

3 ответа

Вы должны записать его так:

egrep "^w.*\.pdf$" filename
Средства начинаются с w, за которым следует любой символ, и заканчивается на .pdf.

для логического «или» вы можете использовать переключатель -e:

egrep -e pattern1 -e pattern2

означает все строки с pattern1 или pattern2.

или, как предложил @steeldriver, используйте расширенное регулярное выражение «или»:

egrep "(pattern1|pattern2)"

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

egrep '(bbb|ccc)' # works fine for your file
grep '(bbb|ccc)' # doens't have any result

Для «и» вам нужно передать его другому egrep:

grep pattern1 | grep pattern2

означает все строки с параметрами pattern1 и pattern2.

или использовать другие инструменты, такие как awk:

awk '/pattern1/ && /pattern2/` filename
5
ответ дан 22 May 2018 в 20:02
  • 1
    в этой команде " egrep "^ w. * \. pdf $ " имя_файл & Quot; значение (\) является «и»? – solfish 29 July 2017 в 23:28
  • 2
    Нет, \ используется для выхода из точки (.), точка . означает, что любой символ и \. означает точную точку .. – Ravexina 29 July 2017 в 23:29
  • 3
    первая команда лучше, у меня еще нет знаний awk :) – solfish 29 July 2017 в 23:36
  • 4
    Обратите внимание, что вы можете использовать | как простой логический ИЛИ в синтаксисе расширенного регулярного выражения grep (ERE) (или, что эквивалентно \| в BRE), например. egrep '(pat|mat)' и grep '\(pat\|mat\)' эквивалентны grep -e pat -e mat – steeldriver 29 July 2017 в 23:41
  • 5
    @steeldriver Да, но это часть регулярного выражения, а -e - это функциональность grep? – Ravexina 29 July 2017 в 23:44

Вы должны записать его так:

egrep "^w.*\.pdf$" filename Средства начинаются с w, за которым следует любой символ, и заканчивается на .pdf.

для логического «или» вы можете использовать переключатель -e:

egrep -e pattern1 -e pattern2

означает все строки с pattern1 или pattern2.

или, как предложил @steeldriver, используйте расширенное регулярное выражение «или»:

egrep "(pattern1|pattern2)"

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

egrep '(bbb|ccc)' # works fine for your file grep '(bbb|ccc)' # doens't have any result

Для «и» вам нужно передать его другому egrep:

grep pattern1 | grep pattern2

означает все строки с параметрами pattern1 и pattern2.

или использовать другие инструменты, такие как awk:

awk '/pattern1/ && /pattern2/` filename
5
ответ дан 18 July 2018 в 09:25

Вы должны записать его так:

egrep "^w.*\.pdf$" filename Средства начинаются с w, за которым следует любой символ, и заканчивается на .pdf.

для логического «или» вы можете использовать переключатель -e:

egrep -e pattern1 -e pattern2

означает все строки с pattern1 или pattern2.

или, как предложил @steeldriver, используйте расширенное регулярное выражение «или»:

egrep "(pattern1|pattern2)"

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

egrep '(bbb|ccc)' # works fine for your file grep '(bbb|ccc)' # doens't have any result

Для «и» вам нужно передать его другому egrep:

grep pattern1 | grep pattern2

означает все строки с параметрами pattern1 и pattern2.

или использовать другие инструменты, такие как awk:

awk '/pattern1/ && /pattern2/` filename
5
ответ дан 24 July 2018 в 19:20

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

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