Предположим, у нас есть файл, содержащий строки следующего вида (но количество # не фиксировано, а длина полей не фиксирована)
as#dviu#cvm#ud
Для приведенной выше строки .*# соответствует as#dviu#cvm# (т. е. идет настолько далеко, насколько это возможно). Как сопоставить до первого появления #? (т.е. соответствует только as#)
Можете ли вы вызвать grep -E из вашего скрипта? Если это так, вы можете использовать нежадные конструкции. Это очень важно, почти ничего нельзя сделать с устаревшими движками, которые не поддерживают ленивых операторов.
@sln Мне нужен был шаблон для sed.





Используйте [^#] вместо ., чтобы соответствовать чему угодно, кроме #.
Используйте
s = "${s#*#}", если вам нужно получитьdviu#cvm#, регулярное выражение не нужно.