При обнаружении match, grep печатает всю совпавшую строку. Чтобы он печатал только совпадающий текст, вы можете использовать переключатель -o
. Но это печатает всю совпавшую строку в строке. Чтобы он напечатал то, что вам нужно, вы должны использовать утверждения просмотра назад и вперед . Для этого требуется grep с поддержкой PCRE.
> grep -Po '(?<=ABCDEF).+(?=K)' <<< 'ABCDEFGHIJKL'
GHIJ
Объяснение:
-P
Включить регулярное выражение, совместимое с perl -o
Печатать только совпадающий текст, а не всю строку (? Положительный вид- за утверждением для сопоставления ABCDEF
(? = K)
Утверждение положительного упреждающего просмотра для сопоставления K . +
Сопоставить все между приведенными выше утверждениями