패턴 일치 행과 빈 행을 제외하고 행 시작 부분에 문자를 삽입하려면 sed를 사용하십시오.

패턴 일치 행과 빈 행을 제외하고 행 시작 부분에 문자를 삽입하려면 sed를 사용하십시오.

좀 막혔어요. 다음 데이터가 포함된 파일이 있습니다.

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.   
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. https://www.lorem.org/
Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.  
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
POM Lorem ipsum dolor sit amet, consectetur adipiscing elit.  https://Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

Group으로 시작하는 줄을 제외한 모든 줄의 시작 부분에 세미콜론을 추가하고 싶습니다.

그래서 나는 다음과 같은 최종 결과를 얻습니다.

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.  
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit.  https://Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

Group: Lorem ipsum dolor sit amet, consectetur adipiscing elit.  
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;POM Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
;Embedded Lorem ipsum dolor sit amet, consectetur adipiscing elit. )

패턴이 일치하지 않으면 다음을 추가할 수 있습니다.

sed '/^Group:/! s/^/;/' index1.txt

하지만 나는 빈 줄을 무시하고 싶습니다.

내가 무엇을 놓치고 있나요?

답변1

빈 줄을 포함하도록 일치 패턴을 향상하십시오.

sed '/^Group:\|^$/! s/^/;/' index1.txt 

이렇게 하면 빈 줄도 변경되지 않습니다.

답변2

이것은 어떻습니까?

sed '/^Group:\|^$/! s/^/;/' file

답변3

Posix sed 사용:

 $ sed -e '/^Group:/! s/^./;&/' index.txt

관련 정보