sed, моддификатор g и шаблоны регулярных выражений
Хочу убрать все AND кроме тех, что с # в строке типа:
#AND bb AND bb AND
Тогда такая запись, даже с шаблоном
echo "#AND bb AND bb AND " | sed -e 's/\([^#]\)AND/\1UND/g'
#AND bb UND bb UND
а такая:
echo "#AND bb AND bb AND " | sed -e 's/\(\#AND.*\)AND\(.*\)/\1UND\2/g'
#AND bb AND bb UND
Требует сначала убирает один AND, а при повторном вызове sed второй.
При этом sed не против шаблонов. И модификатор g понимает. Но обходит строку как-то странно.
echo "#AND bb AND bb AND " | sed -e 's/\( \)AND\( \)/\1UND\2/g'
#AND bb UND bb UND
echo "#AND bb AND bb AND " | sed -e 's/\(.*\)AND\( \)/\1UND\2/g'
#AND bb AND bb UND
echo "#AND bb AND bb AND " | sed -e 's/\(\)AND\(.*\)/\1UND\2/g'
#UND bb AND bb AND
Кто-нибудь понимает эту чертовщину?