sed를 사용하여 텍스트 파일의 특정 문자 뒤에 빈 줄을 추가하는 방법은 무엇입니까?

sed를 사용하여 텍스트 파일의 특정 문자 뒤에 빈 줄을 추가하는 방법은 무엇입니까?

대신 "|" 뒤에 빈 줄을 삽입하고 싶습니다.

inp.txt
abcd |
efgh |
ijkl |
out.txt
abcd 

efgh

ijkl

이것은 유닉스에 있습니다. 내가 시도할 때마다

sed -i.bak 's/|/\n/g' inp.txt

그것이 반환하는 것은 모두

abcd n
efgh n
ijkl n

답변1

\n백슬래시를 추가한 \Enter다음 명령을 사용하는 대신 키를 누르고 계속할 수 있습니다.

sed -i.bak 's/|/\
/g' inp.txt

|$줄 끝에 남은 공백 문자( )를 바꾸려면 다음을 사용합니다.

sed -i.bak 's/ |$/\
/' inp.txt

g로고를 교체할 필요가 없습니다 .

답변2

파이프 문자가 항상 줄 끝에 있으면 다음과 같이 할 수 있습니다.

$ sed -i.bak -e '/[|]$/G' -e 's///' inp.txt

그렇지 않은 경우 및/또는 연속된 파이프가 하나 이상 있는 경우 다음을 수행하십시오.

$ sed -i.bak -e 'y/|/\n/' file.txt

줄의 모든 파이프 문자를 개행 문자로 변환합니다.

관련 정보