Новая линия
Если вы используете bash, вы можете написать $'\n'
. Это расширяется оболочкой, а не программой, поэтому она более надежна, чем другие варианты.
Если вы используете тире (например, внутри сценария оболочки), вы всегда можете использовать буквально заключенную в кавычки новую строку:
'
'
Не элегантно, но это работает.
Смотреть вперед
Вы должны будете использовать Perl-совместимые регулярные выражения (-P
), так как расширенные регулярные выражения не поддерживают прогнозирование.
Часто достаточно подражать негативным взглядам.
Использование ключа -v
grep обычно выполняет это:
grep -E 'PATTERN' | grep -vE 'PATTERNtimeout'
эквивалентно
grep -P 'PATTERN(?!timeout)'
Чтобы подражать (?!timeout)
внутри другого выражения, вы можете использовать это подвыражение:
(($|[^t])|t($|[^i])|ti($|[^m])|tim($|[^e])|time($|[^o])|timeo($|[^u])|timeou($|[^t]))
($|[^t])
строка заканчивается здесь или первый символ не является t.
- Строка
t($|[^i])
заканчивается после символа t или второго символа i.
- Строка
ti($|[^m])
заканчивается после символа ti или третьего символа, отличного от tim.
- ...
Если что-либо из вышеперечисленного совпадает, строка не является тайм-аутом.