예를 들어 나는 바꾸고 싶다
"'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
산출:
'이 기사' "그 문자" '다른 텍스트'
답변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'