sed [duplicate]를 사용하여 파일에 작은따옴표가 포함된 줄을 추가하는 방법

sed [duplicate]를 사용하여 파일에 작은따옴표가 포함된 줄을 추가하는 방법

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

관련 정보