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

Это,

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

возвращает:

 memory-type="3" 

Я хочу:

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

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

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

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

     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"