2013-06-28 2 views
12

작은 따옴표가 들어있는 문자열이 여러 번 나오는 플랫 파일이 있습니다. hari'sleader's.작은 따옴표를 sed의 공백으로 대체하는 방법은 무엇입니까?

나는 공간이 작은 따옴표의 모든 항목을 대체 할은, 즉 leader s

-hari s

  • leader's의 모든 발행 수에 hari's

    • 모든 발행 수는 나는

      시도
      sed -e 's/"'"/ /g' myfile.txt 
      

      sed -e 's/"'"/" "/g' myfile.txt 
      

      그러나 예상 한 결과를 얻지 못하고 있습니다.

      그냥 따옴표를두고 이스케이프 작은 따옴표 넣어 이동
  • 답변

    32

    시도하거나 : 변수와도

    sed 's/'\''/ /g' input 
    

    수를 나중에 읽은 후 작성한 내용을 혼동 스러울 것입니다.

    #!/bin/bash 
    sed "s/'/ /g" myfile.txt 
    
    +1

    또한 ...'tr \ '' twalberg

    9

    : 다른 당신을 가능한 한 간단하게만큼 나오지 명령을 유지하기 위해

    quote=\' 
    sed "s/$quote/ /g" input 
    
    +0

    정확히 내가 뭘 찾고 있었는지, 고마워. –

    16

    이것은 당신이

    echo "hari's"| sed 's/\x27/ /g' 
    

    에 그것은 당신의 파일/텍스트 어디서나 존재하는 작은 따옴표를 대체 할 원하는 것을 할 것입니다. 인용문으로 사용 되더라도 공백으로 바뀝니다. 이 경우 다음을 사용할 수 있습니다 (단어 경계에서 단어하지 내에서 따옴표를 제거) :

    echo "hari's"| sed -re 's/(\<.+)\x27(.+\>)/\1 \2/g' 
    

    HTH 여기

    0

    을 내 자신의 경험을 기반으로합니다.

    내가

    2521 #> echo 1'2'3'4'5 | sed 's/'/ /g' 
    > 
    > 
    > 
    

    을 (어떤 출력)을 수행하지 않습니다 sed

    이 후 특수 문자 '"을 사용하는 방법에 주목하지만,이

    2520 #> echo 1'2'3'4'5 | sed "s/'/ /g" 
    12345 
    
    +0

    나는 약간의 설명이 멋질 것이라고 생각합니다. 또한 : 이것은 Solaris 나 다른 것의 문제입니까? (그 밖의 무엇?) – Holger

    0

    을 할 것이다 - 나는 파일에서 그것을 대체해야한다 sed -i 's/"/"/ g'filename.txt

    할 수있는 백업을 원하시면 sed -i.bak의/"/"/ g 'filename.txt

    관련 문제