2013-06-28 20 views
12

Tek alıntı içeren birden fazla dizeye sahip olduğum düz bir dosyam var, ör. hari's ve leader's.Tek tırnakları sed boşlukta nasıl değiştirebilirim?

ben alanı ile tek alıntının tüm tekrarlarını değiştirmek istiyorum, yani leader s

için hari s

  • leader's tüm zuhurların hari's arasında

    • tüm oluşumları ben

      çalıştı
      sed -e 's/"'"/ /g' myfile.txt 
      

      ve

      ancak beklenen sonucu vermiyorlar.

      Sadece tek alıntı bırakıp kaçan bir tek alıntı koymak gitmek
  • cevap

    32

    deneyin ya: Bir değişkenle de

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

    mümkün Daha sonra okuduktan sonra yazdıklarınla ​​karışacaksın.

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

    Ayrıca ... 'tr \ '' ' twalberg

    9

    : Başka sizi olası basit olduğu kadar sed komutları tutmak için

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

    dosyaadi.txt 's/“/"/g'. –

    16

    Bu

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

    için Bu sizin dosya/metinde herhangi bir yerinde mevcut tek tırnak replace edecek istediğinizi yapacak. Tırnak için kullanılsalar bile boşluklarla değiştirileceklerdir. Bu durumda şu kullanabilirsiniz (kelime sınırında bir kelime değil içinde tırnak kaldırın):

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

    hth İşte

    0

    kendi deneyime dayanmaktadır.

    Ben

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

    (hayır çıkışı) yapmayacağım sed

    Bu sonra özel kömürü ' vs " nasıl kullandığınıza dikkat edin ama bu

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

    Sanırım biraz açıklama güzel olurdu. Ayrıca: Bu gerçekten bir Solaris meselesi mi yoksa başka bir şey mi? (Başka?) – Holger

    0

    yapacağını Lütfen - sed -i 's/"/"/g' dosyaadı.txt

    dosyasında değiştirmeliyim

    sen yedeklerini istiyorsanız yapabileceğiniz sed i.bak ben teşekkür, arıyordu Tam olarak ne

    İlgili konular