Сawk
:
awk -F, '{print $2}' /path/to/input
Сcut
:
cut -d, -f2 /path/to/input
Простой :Для BREневозможно иметь чередование
POSIX BRE does not support any other features. Even alternation is not supported.
Ваша основная цель:
My goal now is to match... separately... with Basic Regular Expressions.
Возможно с BRE:
$ str='AAAAAA======-----======AAAAAAAAA'
$ echo "$str" | grep -Eo '(.)\1*'
AAAAAA
======
-----
======
AAAAAAAAA
Или даже с несколькими шаблонами в BRE grep:
$ echo "$str" | grep -o -e 'AA*' -e '--*' -e '==*'
AAAAAA
======
-----
======
AAAAAAAAA
Или ограничьте свое решение GNU grep (позволяет \|
как чередование даже в синтаксисе BRE; что не является допустимой функцией POSIX):
$ echo "$str" | grep -o '\(AA*\)\|\(==*\)\|\(--*\)'
Но ваша второстепенная цель:
is it also possible to additionally put them in separate capture groups as well?
Требует только одного регулярного выражения, а поскольку в BRE невозможно чередование, это невозможно.
Для сопоставления строк повторяющихся символов с базовыми регулярными выражениями:
$ echo 'AAAAAA======-----======AAAAAAAAA' | grep -o '\(.\)\1*'
AAAAAA
======
-----
======
AAAAAAAAA
.
соответствует любому символу. \(.\)
соответствует любому символу и сохраняет этот символ в группе захвата 1. \1*
соответствует любым дополнительным вхождениям того же символа.
Использование обратных -ссылок, таких как \1
, в BRE поддерживается POSIX .