Как работают опционы `кал `?

Есть три части шаблона, который вы хотите сопоставить:

  • Первый — начать строку с 'foo'. Итак, используйте начальный якорь :'^foo'.
  • Второй способ — закончить строку символом «bar». Здесь используйте конечную привязку :'bar$'.
  • Третья часть — это то, что находится между начальной и конечной якорями. В вашем случае вы хотите сопоставить все символы ноль или более раз (, т.е. между ними могут быть или не быть символы ).Это представлено выражением '. *'. Точка соответствует любому символу, а квантификатор звездочки указывает, что он может совпадать ноль или более раз.

Сложив все это вместе, вы получите выражение:

grep '^foo.*bar$' file

В качестве примера рассмотрим этот тестовый файл:

$ cat testfile
foobar
foo bar
foo 123 bar
123 foo bar
foo bar 123
123 foo bar 123

Теперь выполняется команда grep:

$ grep '^foo.*bar$' testfile
foobar
foo bar
foo 123 bar

Обратите внимание, что вариант, указанный вами в комментариях (grep -e "^foo" -e "bar$" file), ведет себя иначе:

$ grep -e "^foo" -e "bar$" testfile
foobar
foo bar
foo 123 bar
123 foo bar
foo bar 123

Это связано с тем, что опции -eсочетаются с операцией ИЛИ. В дополнение к исходным результатам ^foo.*bar$вы также получите результаты, соответствующие ^foo, а также результаты, соответствующие bar$.

-1
04.07.2020, 05:34
1 ответ

В справочной странице нет четкого объяснения того, какие параметры можно использовать с ncalи какие параметры можно использовать с cal. Он просто их иллюстрирует. СИНТАКСИС справочной страницы и сообщение об использовании, возвращенное при вводе недопустимой опции, иллюстрируют допустимые комбинации существующих опций и каждой команды, calи ncal--, они не показывают, что -Cиспользуется в сочетании с -M. потому что эта комбинация недействительна и просто не работает.

Чтобы заставить программу calпечатать понедельник как первый день недели, введите команду ncal -bM.

1
18.03.2021, 23:22

Теги

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