
나는 이것을 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>
이는 구문 오류입니다.