sed: 불확정 문자열의 가변 길이 숫자 값 변경

sed: 불확정 문자열의 가변 길이 숫자 값 변경

하드웨어 드라이버에서 수정해야 할 문자열.conf파일은 다음과 같습니다:

options rsi_sdio dev_oper_mode=13

간단해 보이지만 개발자는 이 문자열을 기꺼이 변경하여 정확히 일치하는 sed 표현식을 깨뜨릴 것입니다. 이제 값 앞의 문자열을 "불확실함"으로 처리해야 하며 100% 정확도로 안정적으로 예측할 수 없습니다.

따라서 값 자체만 일치시킬 수 있으며 이 값도 변경될 수 있습니다. 현재는 "13"이지만 나중에 변경될 수 있습니다. 유일하게 "알려진" 사실은 수정해야 하는 값의 길이가 1자리 또는 2자리일 수 있다는 것입니다.

따라서 문자열과 값이 모두 변경되더라도 손상을 방지하기 위해 값을 성공적으로 설정할 수 있음을 보장하는 방탄 정규식이 필요합니다!

답변1

개발자들이 나에게 이 변화구를 던졌을 때 실제로 무선 연결에 엄청난 혁신이 일어났습니다. 이는 많은 사람들이 겪을 수 있는 상황이므로 해결 방법을 게시하겠습니다.

sed -E -i 's/=[0-9]{1,2}$/=6/' /etc/modprobe.d/rs9113.conf

이는 등호 뒤에 최소 1자리, 최대 2자리 숫자가 오는 것과 일치합니다. 따라서 문자열이 변경될 수 있고 기본값인 "13"도 변경될 수 있지만 이 정규식은 미래에도 계속 유지되어야 합니다.

이러한 광범위한 변경 사항을 처리하려는 다른 사람들은 이 접근 방식이 스크립트를 올바르게 유지하는 데 도움이 된다고 생각합니다.

관련 정보