join -t',' -1 1 -2 1 -o 1.1,1.2,1.3,1.4,2.2 <(sort FILE1) <(sort FILE2)
ABC,10,20,3,5000
GHI,8,6,2,1000
join -1 1
= ФАЙЛ1, столбец 1, -2 1
= ФАЙЛ2, столбец 1
-o
= вывод, 1.1
= ФАЙЛ1.столбец 1,...
Просто сделайте это как первый шаг:
FIRST_SET="${STRING%% (*}"
FIRST_WORD=${FIRST_SET%% *}
SECOND_WORD=${FIRST_SET##* }
Предположим, что вы хотите получить окончательный результат в двух переменных оболочки, что слова, которые вы хотите, разделены пробелами, что в словах нет пробелов, и что переменная 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
.