sed에서 작은 따옴표를 이스케이프하는 방법은 무엇입니까?
이미 따옴표로 둘러싸인 sed 표현식에서 작은 따옴표를 이스케이프하는 방법은 무엇입니까?
예를 들면 :
sed 's/ones/one's/' <<< 'ones thing'
견적 sed따옴표와 코드를 :
$ sed "s/ones/one's/"<<<"ones thing"
one's thing
수백 개의 백 슬래시로 코드를 이스케이프하는 것을 좋아하지 않습니다. 눈이 아파요. 일반적으로 나는 다음과 같은 방식으로 수행합니다.
$ sed 's/ones/one\x27s/'<<<"ones thing"
one's thing
한 가지 트릭은 인접한 문자열의 쉘 문자열 연결을 사용하고 쉘 이스케이프를 사용하여 포함 된 따옴표를 이스케이프하는 것입니다.
sed 's/ones/two'\''s/' <<< 'ones thing'
two's thing
sed 표현식에는 3 개의 문자열이 있으며 쉘이 함께 꿰맨 다 :
sed 's/ones/two'
\'
's/'
다른 사람에게 도움이되기를 바랍니다!
가장 좋은 방법은 $'some string with \' quotes \''
예 :
sed $'s/ones/two\'s/' <<< 'ones thing'
sed 명령 외부에 큰 따옴표를 사용하십시오.
$ sed "s/ones/one's/" <<< 'ones thing'
one's thing
파일에서도 작동합니다.
$ echo 'ones thing' > testfile
$ sed -i "s/ones/one's/" testfile
$ cat testfile
one's thing
당신은 하나의 경우 와 문자열 내부에 큰 따옴표를, 그것도 괜찮습니다. 큰 따옴표를 이스케이프하십시오.
예를 들어,이 파일에는 작은 따옴표와 큰 따옴표가 모두 포함 된 문자열이 있습니다. sed를 사용하여 작은 따옴표를 추가하고 일부 큰 따옴표를 제거합니다.
$ cat testfile
"it's more than ones thing"
$ sed -i "s/\"it's more than ones thing\"/it's more than one's thing/" testfile
$ cat testfile
it's more than one's thing
이것은 일종의 부조리하지만 내가 얻을 수 \'있는 sed 's/ones/one\'s/'작업에. Angular를 사용 import 'hammerjs';하여 src/main.ts파일에 자동으로 추가되는 쉘 스크립트를 만들기 위해 이것을 찾고있었습니다 .
내가 일하게 된 것은 다음과 같습니다.
apost=\'
sed -i '' '/environments/a\
import '$apost'hammerjs'$apost';' src/main.ts
따라서 위의 예에서는 다음과 같습니다.
apost=\'
sed 's/ones/one'$apost's/'
왜 \'저절로 작동하지 않는지 모르겠지만 거기에 있습니다.
나는 이것이 경찰처럼 들릴 것이라는 것을 알고 있지만 문자열에 작은 따옴표와 큰 따옴표가 모두있을 때 sed를 사용할 수 없습니다. 나처럼 문제가있는 초보자를 돕기 위해 한 가지 옵션은 문자열을 분할하는 것입니다. 100 개 이상의 index.hmtl 파일에서 코드를 교체해야했습니다. 문자열에는 작은 따옴표와 큰 따옴표가 모두 있으므로 문자열을 분할하고 첫 번째 블록을 <!--로, 두 번째 블록을 -->. 그것은 내 index.html 파일을 엉망으로 만들었지 만 작동했습니다.
참고 URL : https://stackoverflow.com/questions/24509214/how-to-escape-single-quote-in-sed
'Program Club' 카테고리의 다른 글
| 호환되지 않는 문자 인코딩 : ASCII-8BIT 및 UTF-8 (0) | 2020.11.03 |
|---|---|
| 리모컨없이 모든 로컬 브랜치 나열 (0) | 2020.11.03 |
| "?"를 숨기거나 삭제하려면 어떻게해야합니까? (0) | 2020.11.03 |
| asp.net에서 영구 쿠키를 만드는 방법은 무엇입니까? (0) | 2020.11.03 |
| 어댑터로 목록보기를 동적으로 업데이트 (0) | 2020.11.03 |