![sed [duplicate]를 사용하여 파일에 작은따옴표가 포함된 줄을 추가하는 방법](https://linux55.com/image/65121/sed%20%5Bduplicate%5D%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%9E%91%EC%9D%80%EB%94%B0%EC%98%B4%ED%91%9C%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A4%84%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
sed를 사용하여 텍스트 파일에 다음 줄을 추가하고 싶습니다.
gem 'forum2discourse'
나는 그것을 시도했지만 프롬프트 sed -i '$a gem \'forum2discourse\'' Gemfile
가 표시되므로 문자를 >
잘못 이스케이프 처리한 것 같습니다.'
답변1
sed -i '$a gem '"'"'forum2discourse'"'" Gemfile
대체 솔루션
자신만의 방식으로 수행하려면 bash $'string'
형식을 사용하세요. $'string' 형식의 단어는 특별하게 처리됩니다. 단어는 ANSI C 표준에 지정된 대로 대체된 백슬래시 이스케이프 문자를 사용하여 문자열로 확장됩니다.
sed -i $'$a gem \'forum2discourse\'' Gemfile
원천:http://wiki.bash-hackers.org/syntax/quoting#ansi_c_like_strings
답변2
적어도 GNU sed의 경우:
sed -i.bak '$a gem \x27forum2discourse\x27' file
답변3
sed -i -e '$a gem '"'"'forum2discourse'"'" yourfile