21.08.2014, 11:52 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
Autor Nachricht
Witwe_Bolte
Titel: sed Variable  BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden  
Antworten mit Zitat Nach oben
brummer
Titel: RE: sed Variable  BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Witwe_Bolte
Titel: RE: sed Variable  BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden  
Antworten mit Zitat Nach oben
blauweiss
Titel:   BeitragVerfasst am: 12.03.2007, 18:31 Uhr



Anmeldung: 12. Mar 2005
Beiträge: 366

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
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
brummer
Titel:   BeitragVerfasst am: 12.03.2007, 18:49 Uhr



Anmeldung: 11. Jul 2006
Beiträge: 117

hätst es besser ma probiert Mr. Green
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 Smilie
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
blauweiss
Titel:   BeitragVerfasst am: 13.03.2007, 15:41 Uhr



Anmeldung: 12. Mar 2005
Beiträge: 366

Ja, hätt ich besser mal probiert, Dieter Nuhr läßt grüssen... Verlegen
Nie geglaubt das sowas funktioniert, aber das tut es definitiv!
Muß ich mir unbedingt merken.

_________________
Gruss an alle Kanotix-Fans, blauweiss
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Beiträge vom vorherigen Thema anzeigen:     
Gehe zu:  
Alle Zeiten sind GMT + 1 Stunde
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
PNphpBB2 © 2003-2007 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.