Вы можете использовать
grep -o '([Kk][^()]*)' stations.txt
Или, чтобы получить значения без скобок:
grep -Po '\(\K[Kk][^()]+' stations.txt # GNU grep required
# Or, just pipe a sed to remove the initial (:
grep -o '([Kk][^()]*' stations.txt | sed 's/^(//'
Или только с sed
, если в строке есть одно значение:
sed -n 's/.*(\([kK][^()]*\).*/\1/p' stations.txt
Опция -o
будет выводить только совпадающие тексты.
([Kk][^()]*)
- это шаблон POSIX BRE, который соответствует:
(
- буквальный (
символ
[Kk]
- выражение в скобках, соответствующее k
или K
[^()]*
- выражение в скобках с отрицанием, соответствующее любому символу, но (
и )
ноль или более раз
)
- )
char.