Я предполагаю, что об этом, должно быть, спрашивали несколько раз, но я просто не могу найти хорошего соответствия;иногда вы просто не можете придумать правильный поиск, я полагаю.
Итак, это моя проблема - я хочу проанализировать строки SQL, как показано ниже:
select * from my_table where col1 = #ABC# and col2 like "%#DEF#%";
Я хочу каким-то образом выловить токены ABC
и DEF
, анализируя для разграничения #
s.Попытка с sed
, я получаю что-то вроде:
# echo "something#ABC#else" | sed 's/.*\(#..*#\).*/\1/g'
#ABC#
, но это ловит только один, если их больше:
# echo "something#ABC#else something#DEF#else" | sed 's/.*\(#..*#\).*/\1/g'
#DEF#
Кажется, я здесь иду по неправильным линиям- есть ли лучший способ?