регулярное выражение sed соответствует больше, чем предполагалось

Это,

echo 'memory-type="3" reference-number="1" crc="0"' | sed 's/reference-number=".*"//g' 

возвращает:

 memory-type="3" 

Я хочу:

 memory-type="3" crc="0" 

Что такое рег-экс для этого?

Пробел не важен в конечном результате

    One Solution collect form web for “регулярное выражение sed соответствует больше, чем предполагалось”

    Ваша проблема в том, что .* Соответствует самой длинной строке; в твоем случае:

     memory-type="3" reference-number="1" crc="0" ↑-------↑ 

    Вы хотите, чтобы это соответствовало только 1 . Самый простой способ сделать это – сопоставить не любое число символов, а любое число символов, кроме кавычек :

     $ echo 'memory-type="3" reference-number="1" crc="0"' | sed 's/reference-number="[^"]*"//g' memory-type="3" crc="0" 
    Linux и Unix - лучшая ОС в мире.