• 25-10-2014, 21:13:05
    #1
    Bash'de alınan stringdeki "_" karakterini boşlukla değiştiren kod arıyorum. Ancak başta ve sonda olan karakterler değişmemeli sadece kelimeler arası "_" varsa değişmeli. Nasıl yapabilirim?
  • 26-10-2014, 09:51:18
    #2
    echo "$string" | sed -r 's/_/ /g'

    echo "$string" | sed -r 's/orjinalkarakter/yenikarakter/g'
  • 26-10-2014, 10:12:04
    #3
    victories adlı üyeden alıntı: mesajı görüntüle
    echo "$string" | sed -r 's/_/ /g'

    echo "$string" | sed -r 's/orjinalkarakter/yenikarakter/g'
    Teşekkür ederim victories ama baştaki ve sondaki karakterin değişmemesi gerekiyor. "_merhaba_dunya_" giriyorsa, "_merhaba dunya_" çıkmalı.

    Pythondaki şu kod gibi;

    def main( string ):
        liste = list(string) 
        first_index = FirstAndLastControl(liste)
        last_index = FirstAndLastControl(liste[::-1])
        character_control = "".join(liste[first_index:len(liste)-last_index]).replace("_"," ")
    
        for i in range(len(character_control)):
            liste[first_index+i] = character_control[i]
    
        print "".join(liste)
    
    def Control(harf):
        
        if harf == "_":
            return False
        else:
            return True
            
    def FirstAndLastControl(liste):
        
        state = Control(liste[0])
        
        for i in range(len(liste)):
            if liste[i] == "_" and state==False:
                pass
            elif liste[i] != "_" :
                return i
            
        
            
    args = sys.argv[1:]
    
    main(args[0])