Извлечение строки

Извлечение строки

У меня есть файл с текстовым шаблоном:

AAAA - BBBB (CCCC) - (DDDD)

Меня интересует только использование первого набора AAAA - BBBB по отдельности (т.е. AAAA и BBBB). Я обрезал '(CCCC) - (DDDD)' с помощью:

FIRST_SET="${STRING%% (*}" 

давая мне «AAAA - BBBB».

Хоть убей, не могу извлечь «АААА» из второго «ББББ».

Заранее спасибо.

решение1

Предположим, что вам нужен конечный результат в двух переменных оболочки, что нужные вам слова разделены пробелами, что в словах нет пробелов и что переменная IFSимеет значение по умолчанию:

$ read -r word1 dash word2 junk <file
$ printf 'word1 = "%s"\nword2 = "%s"\n' "$word1" "$word2"
word1 = "AAAA"
word2 = "BBBB"

Команда read, используемая здесь, будет считывать первое слово в переменную word1, а второе слово — в переменную word2. Тире между словами считывается в переменную dash, а мусор в конце помещается в переменную с именем junk.

решение2

Просто сделайте это, как в первом шаге:

FIRST_SET="${STRING%% (*}"
FIRST_WORD=${FIRST_SET%% *}
SECOND_WORD=${FIRST_SET##* }

Связанный контент