Получение слов перед определенными символами без использования Perl

У меня есть предложения для SQL-запросов в текстовой форме, и я хотел бы извлечь из них имена столбцов. Предложения могут содержать такие условия, как col_1 = 'Spruce' и col_2 in ('Argentina', 'Cameroon') .

Мой первый вопрос: возможно ли в ksh извлекать значения col_1 и col_2 из текста (т. Е. Все слова раньше in ( или знак равенства). Я знаю, что в условиях if-else можно контролировать поток выполнения если текст соответствует заданному шаблону, однако я не знаю, как я мог бы действительно получить слова, которые сделали текст соответствующим этому шаблону.

ОБНОВИТЬ:

Например. если входной tree_type = 'Spruce' and country in ('Russia', 'Zambia') , я бы хотел получить tree_type country .

Если входной employee_state in ('Colorado', 'Wyoming', 'Louisiana') and dept_nr in (13, 732, 91) and case_code = 82517 я бы хотел получить employee_state dept_nr case_code .

Я попробовал sed 's/\S\+ \((= \|in (\)/\1/g' , который удалил слова, которые я хотел сохранить, и сохранил все остальное, что я хотел удалить. Я также попробовал sed 's/\(\S\+ \)\(= \|in (\)/\1/g' , это удалено = и in ( , но все остальное.

ОБНОВЛЕНИЕ 2:

Я передал первое предложение Костаса sed 's/\S\+ \(= \|in (\)/\1/g' во вторую переменную, элементы которой я удалил из исходной, тем самым получив то, что я хотел:

$ A="employee_state in ('Colorado', 'Wyoming', 'Louisiana') and dept_nr in (13, 732, 91) and case_code = 82517"; B=$(echo $A | sed 's/\S\+ \(= \|in (\)/\1/g'); for b in $B; do A=${A[@]/$b}; done; echo $A

employee_state dept_nr case_code

Костас, я очень благодарен за вашу помощь.

Попробуйте подключиться через

 sed 's/\S\+ \(= \|in (\)/\1/g'