정규식과 고정 섹션을 사용한 Sed

정규식과 고정 섹션을 사용한 Sed

파일이 있어요

<vcell i="2" v="2" s="0" m="0"/>
<cell i="3" v="3187"/>
<cell i="4" v="1"/>
<cell i="5" v="17"/>
<cell i="6" v="0"/>
<cell i="7" v="2"/>
<cell i="8" v="17"/>
<cell i="9" v="0 / 13"/>

교체해야 해요

<vcelli2 v="2" s="0" m="0"/>
<celli3 v="3187"/>
<celli4 v="1"/>
<celli5 v="17"/>
<celli6 v="0"/>
<celli7 v="2"/>
<celli8 v="17"/>
<celli9 v="0 / 13"/>

sed와 정규 표현식을 사용하여 이 작업을 수행할 수 있나요?

답변1

예, sed 명령을 사용하여 수행할 수 있습니다.

파일을 변경하기 전에 파일을 백업하는 것을 잊지 마십시오.결과가 올바른지 확인한 후 백업을 삭제하거나 나중에 사용할 수 있도록 보관할 수 있습니다.

sed명령은 다음과 같습니다 .

sed -i.backup -E 's/ i="([0-9]*)"/i\1/g' file

작동해야 합니다(이렇게 하면 원본 파일이 자동으로 백업되고 backup수동으로 수행한 경우 해당 부분이 삭제됩니다).

-i플래그(모든 유형에서는 사용할 수 없음 sed)는 현재 위치(즉, 원본 파일에 다시 저장, 확장자를 사용하여 원본 파일의 복사본 유지 .backup)를 나타내며 -E(확장 정규식)은 괄호를 이스케이프하는 것을 방지하는 데 사용됩니다.

관련 정보