![sed mac 큰따옴표를 사용하여 특정 줄에 텍스트 추가](https://linux55.com/image/141080/sed%20mac%20%ED%81%B0%EB%94%B0%EC%98%B4%ED%91%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8A%B9%EC%A0%95%20%EC%A4%84%EC%97%90%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%B6%94%EA%B0%80.png)
나는 이것을 OSX에서 파일에 한 줄을 추가하기 위해 sed를 사용하는 시작 가이드로 사용하려고 합니다. https://stackoverflow.com/questions/25631989/sed-insert-line-command-osx
sed -i '.json' '2i\
this is a test place
' dummy.txt
위의 내용은 유효합니다. 하지만 확장해야 하므로 간단한 것부터 시작하고 큰따옴표로 바꾸세요.
sed -i '.json' "2i\
this is a test place
" dummy.txt
내가 왜 그런 말을 듣나요 command i expects \ followed by text
? 아니면 Mac에서 큰따옴표를 사용하여 특정 줄에 텍스트를 추가하는 방법은 무엇입니까?
답변1
$ sed "2i\\
These are words on\\
multiple lines\\
" input
1
These are words on
multiple lines
2
3
4
5
6
7
8
9
10
쉘 대신 sed
이스케이프하는 리터럴 줄 바꿈을 구문 분석하고 이스케이프하도록 백슬래시를 이스케이프해야 합니다 .sed
$ sed '2i\
thing' input
큰 따옴표를 사용하면 모든 내용이 문자 그대로 전달되므로 sed
다음을 참조하세요.<2> <i> <literal linefeed>
$ sed "2i\
thing" input
약한 따옴표를 사용하면 문자열을 구문 분석할 때 쉘이 먼저 권한을 얻습니다. 따라서 sed
보시다시피 <2> <i> <linefeed>
이는 구문 오류입니다.