| Autor | 
    Nachricht | 
  
  
    | 
      
     | 
    
      
        
					
            Titel: sed Variable 
             Verfasst am: 12.03.2007, 11:31 Uhr
           | 
				 
       
     | 
  
  
    
      
        
          
             
             
  
            Anmeldung: 09. Apr 2005 
            Beiträge: 203 
             
            
            
           | 
         
       
     | 
    
      
        
          KDE hat in .directory Eine Zeile Icon=absoluter Pfad zum Ordner-icon
 
Ich will aber nen relativen Pfad ./xy.png. Grund dürfte klar sein: Jedesmal wenn ich den Ordner verschiebe, findet KDE das Icon nicht mehr, wenn es im Ordner selbst liegt (und da gehört es IMHO auch hin).
 
Alles klar? Also:
 
Mit find bekomme ich ja rekursiv (genial) eine schöne Liste der absoluten Pfade zu .directory und mit grep die jeweiligen Zeilen mit Icon=...
 
Den Verzeichnisnamen zum png, den mir dirname gibt, will ich durch ./  mit sed ersetzen. Für sed bin ich aber zu dum. Meine Variable a enthält also meinetwegen "/home/witwe/Bilder/JennaJameson/" (jetzt seid Ihr wieder wach, was?). Wenn ich in einer Zeile was mit $a mache, begreift er den Inhalt aber anscheinend nicht als Text, sondern als Pfadname.
 
Dann hatte ich noch die Idee, die Zeile 'Icon=...' einfach die komplette Zeile durch eine andere zu ersetzen (wäre wohl am elegantesten). 
 
sed '... c\ 
 
Ersatzzeile\ 
 
'
 
Haut aber nicht hin (nix passiert). | 
         
        
          
          
            
          
             _________________ unsensibel, aber empfindlich
            
           | 
         
         
	        |     | 
	       
       
     | 
  
  
    | 
      
      
     | 
  
  
      | 
  
  
    | 
      
     | 
    
      
        
					
            Titel: RE: sed Variable 
             Verfasst am: 12.03.2007, 12:39 Uhr
           | 
				 
       
     | 
  
  
    
      
        
          
             
            
  
            Anmeldung: 11. Jul 2006 
            Beiträge: 117 
             
            
            
           | 
         
       
     | 
    
      
        
          sed 's/'"$a"'/'"$b"'/g'
 
 
so solts gehn, oder so
 
 
sed 's?'"$a"'?'"$b"'?g'
 
 
gruß  brummer | 
         
        
          | 
          
            
          
            
            
           | 
         
         
	        |     | 
	       
       
     | 
  
  
    | 
      
      
     | 
  
  
      | 
  
  
    | 
      
     | 
    
      
        
					
            Titel: RE: sed Variable 
             Verfasst am: 12.03.2007, 15:44 Uhr
           | 
				 
       
     | 
  
  
    
      
        
          
             
             
  
            Anmeldung: 09. Apr 2005 
            Beiträge: 203 
             
            
            
           | 
         
       
     | 
    
      
        
          Wird heut abend gleich ausprobiert.
 
Melde mich aber nur wieder, wenns nicht geklappt hat. Sonst mußte ich mich aus Scham leider umbringen. | 
         
        
          
          
            
          
             _________________ unsensibel, aber empfindlich
            
           | 
         
         
	        |     | 
	       
       
     | 
  
  
    | 
      
      
     | 
  
  
      | 
  
  
    | 
      
     | 
    
      
        
					
            Titel:  
             Verfasst am: 12.03.2007, 18:31 Uhr
           | 
				 
       
     | 
  
  
    
      
        
          
             
            
  
            Anmeldung: 12. Mar 2005 
            Beiträge: 368 
             
            
            
           | 
         
       
     | 
    
      
        
          Das wird so nicht funktionieren:
 
sed 's/'"$a"'/'"$b"'/g'
 
Eine Variable zwischen ticks (') wird nicht ausgewertet, müßtest schon so schreiben:
 
sed "s/$a/$b/g"
 
Da es sich bei den Variablen aber um Pfade, also mit (/) im Namen handelt, funktioniert Dieses so auch nicht!
 
 
sed ist es aber letztendlich egal, wie die Such- und Ersetzungsstrings voneinander getrennt werden,
 
das Trennungszeichen selbst darf nur im Text nicht vorkommen, oder mußt es mit (\) entwerten:
 
sed "s|$a|$b|g"; sed "s@$a@$b@g"; sed "sÜ$aÜ$bÜg"
 
 
funktioniert alles, in deinem Fall würde ich das pipe-Zeichen nehmen (|) | 
         
        
          
          
            
          
             _________________ Gruss an alle Kanotix-Fans, blauweiss
            
           | 
         
         
	        |     | 
	       
       
     | 
  
  
    | 
      
      
     | 
  
  
      | 
  
  
    | 
      
     | 
    
      
        
					
            Titel:  
             Verfasst am: 12.03.2007, 18:49 Uhr
           | 
				 
       
     | 
  
  
    
      
        
          
             
            
  
            Anmeldung: 11. Jul 2006 
            Beiträge: 117 
             
            
            
           | 
         
       
     | 
    
      
        
          hätst es besser ma probiert    
 
sed 's/'"$a"'/'"$b"'/g' 
 
die ticks sind für 's/'  '/'  '/g' , und die variablen sind einfach als text declaliert "$a"  "$b" , sie stehen auserhalb der ticks und werden von der bash ausgewertet!
 
ich schließe so aber dieses problem aus 
 
Zitat: 
 
das Trennungszeichen selbst darf nur im Text nicht vorkommen, oder mußt es mit (\) entwerten: 
 
 
 
 
gruß   brummer   | 
         
        
          | 
          
            
          
            
            
           | 
         
         
	        |     | 
	       
       
     | 
  
  
    | 
      
      
     | 
  
  
      | 
  
  
    | 
      
     | 
    
      
        
					
            Titel:  
             Verfasst am: 13.03.2007, 15:41 Uhr
           | 
				 
       
     | 
  
  
    
      
        
          
             
            
  
            Anmeldung: 12. Mar 2005 
            Beiträge: 368 
             
            
            
           | 
         
       
     | 
    
      
        
          Ja, hätt ich besser mal probiert, Dieter Nuhr läßt grüssen...   
 
Nie geglaubt das sowas funktioniert, aber das tut es definitiv!
 
Muß ich mir unbedingt merken. | 
         
        
          
          
            
          
             _________________ Gruss an alle Kanotix-Fans, blauweiss
            
           | 
         
         
	        |     | 
	       
       
     | 
  
  
    | 
      
      
     | 
  
  
      | 
  
  
  
    | 
      
     |