같은 줄에 있는 여러 반복 패턴 내에서 텍스트 바꾸기

같은 줄에 있는 여러 반복 패턴 내에서 텍스트 바꾸기

나는 이런 것을 가지고 있습니다.

I like reading **books** and taking **notes**

나는 이런 것을 얻으려고 노력하고 있습니다.

I like reading <b>books</b> and taking <b>notes</b>

하려고 노력하다;

sed 's/\*\*\(.*\)\*\*/<b>\1<\/b>/g' a.txt

이것은 반환됩니다;

I like reading <b>books** and taking **notes</b>

전체 라인을 감싸줍니다. 우회할 수 있는 방법이 있나요?

참고: 저는 sed의 GNU 버전을 사용하고 있습니다.

답변1

GNU를 사용하여 다음을 수행할 수 있습니다 sed.

$ sed 's:\*\*\([^*]*\)\*\*:<b>\1</b>:g' a.txt 
I like reading <b>books</b> and taking <b>notes</b>

패턴 은 와일드카드가 아닌 \*\*\([^*]*\)\*\*문자열을 캡처합니다 . 마지막으로 태그 사이에서 캡처된 그룹 자체를 바꿀 수 있습니다.**...***

관련 정보