sed 명령은 개행 없이 텍스트를 바꿉니다.

sed 명령은 개행 없이 텍스트를 바꿉니다.

Unix sed 명령은 이스케이프된 n 백슬래시를 \n개행 문자로 인식하지 않습니다. 예를 들어, 이 명령은 sed "s!,!\n!g"입력 텍스트의 쉼표를 개행 문자 대신 문자 n으로 바꿉니다.

\nsed가 개행 문자를 해석하게 하려면 어떻게 해야 합니까 ?

답변1

를 사용하는 경우 bash아래와 같이 Enter 키를 눌러 개행 문자를 삽입할 수 있습니다.

sed 's!,!\
!g'

답변2

sed "s/,/\n/g"여기 bash에서 작동합니다.

답변3

sed의 Mac 버전에는 이러한 어려움이 있습니다. sed의 GNU 버전을 설치해 보세요 brew install coreutils.

gsed "s/,/\\n/g"

작동해야합니다. 또는 tr ',' \\n검색 문자열이 단 한 문자인 경우에도 작동합니다.

답변4

실제로 Unix Echo + Sed는 항상 \n을 개행 문자로 처리하지 않습니다. 나는 캐리지 리턴 ASCII 0xd와 수직 탭 ASCII 0xb를 제공하여 이 문제를 해결했습니다.

예를 들어, sed 명령을 사용하여 변수를 사용하여 개행 문자를 추가합니다.

eol="\xd\xb"
echo -e "hello" | sed "s/$/$eol/"

관련 정보