sed에서 따옴표를 올바르게 사용하는 방법은 무엇입니까? [복사]

sed에서 따옴표를 올바르게 사용하는 방법은 무엇입니까? [복사]

예를 들어 나는 바꾸고 싶다

"'this text'"
"that text"
'other_text'

입력하다

'this text'
"that text"
'other_text'

나는 노력했다

sed -e 's/^"\'/"/g'

하지만 내 인용문은 틀렸음에 틀림없어요.

우분투.

답변1

GNU sed 사용:

sed 's|\x22\x27|\x27|;s|\x27\x22|\x27|' file

산출:

'이 기사'
"그 문자"
'다른 텍스트'

바라보다:http://www.asciitable.com/

답변2

\따옴표 안에는 이스케이프를 사용할 수 없습니다 ''. 그러니 모든 것을 ""따옴표로 묶고 "단락 을 벗어나세요."s/^\"'/'/g"

또는 ''견적을 끝내고 다음을 수행한 다음 \'견적을 다시 시작하십시오.'''s/^"'\''/'\''/g'

\또한 s 와 s 로 쉽게 혼동되는 경우 s 를 구분 기호로 /사용할 필요가 없다는 점에 유의하세요 . /다음과 같은 문자를 사용할 수 있습니다."s%^\"'%'%g"


이것은 줄 시작 부분의 첫 번째 인용문만을 인용하는데, 이는 당신이 어려움을 겪고 있는 것 같습니다.

답변3

이 라인을 시도해 보세요

sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" file

sed표현식을 묶는 대신 ' '다음을 사용하여 " "사용할 수 있습니다.\" "

예를 들어

@tachomi:~$ echo "\"'this text'\""
"'this text'"
@tachomi:~$ echo "\"'this text'\"" | sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" 
'this text'

실시예 2

@tachomi:~$ cat file.txt
"'this text'"
"that text"
'other_text'
@tachomi:~$  sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" file.txt
'this text'
"that text"
'other_text'

관련 정보