sed 정규식 일치가 기대치를 초과합니다.

sed 정규식 일치가 기대치를 초과합니다.

이것,

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

반품:

memory-type="3" 

제 생각에는:

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

이를 달성하기 위한 정규 표현식은 무엇입니까?

최종 결과에서 공백은 중요하지 않습니다.

답변1

귀하의 문제는 .*귀하의 경우 가장 긴 문자열과 일치합니다.

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"

관련 정보