Freitag, 26. Dezember 2008
Sed ersetzt das Kommazeichen
Trackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Super,
das ist die halbe "Miete" auf dem Weg zur Lösung meines Problems zur Korrektur einer GEDCOIM Datei.
Ich möchte gerne in allen Zeilen einer Datei, die mit 1 NAME beginnen, z.B.:
1 NAME Hans-Peter Otto/Mueller/
einen Space vor den ersten Slash setzen. Also
1 NAME Hans-Peter Otto /Mueller/
(Also einen Space hinter den letzten Vornamen setzen)
Im obigen Beispiel wurde schön detailliert beschrieben, wie Ziffern gefunden und in Platzhalter gesteckt werden.
Wie beschreibe ich eine undefiniert lange Textfolge, die mit 1 NAME beginnt?
Vielen Dank für einen kleinen Hinweis.
Andreas aus Kassel
das ist die halbe "Miete" auf dem Weg zur Lösung meines Problems zur Korrektur einer GEDCOIM Datei.
Ich möchte gerne in allen Zeilen einer Datei, die mit 1 NAME beginnen, z.B.:
1 NAME Hans-Peter Otto/Mueller/
einen Space vor den ersten Slash setzen. Also
1 NAME Hans-Peter Otto /Mueller/
(Also einen Space hinter den letzten Vornamen setzen)
Im obigen Beispiel wurde schön detailliert beschrieben, wie Ziffern gefunden und in Platzhalter gesteckt werden.
Wie beschreibe ich eine undefiniert lange Textfolge, die mit 1 NAME beginnt?
Vielen Dank für einen kleinen Hinweis.
Andreas aus Kassel
Hallo Andreas,
das kommt auch drauf an, welche Zeichen die Namen enthalten können und wie die anderen Zeilen aufgebaut sind.
Möglichkeit 1:
sed 's/\(1 NAME [a-zA-Z-]\+ [a-zA-Z-]\+\)\//\1 \//'
Die zwei (!) Namen vor dem Slash dürfen nur Buchstaben und das "-" enthalten. Dazwischen muss ein Leerzeichen stehen.
Möglichkeit 2:
sed 's/\(1 NAME [^/]*\)\//\1 \//'
Die Namen (=Zeichen vor dem ersten Slash) dürfen alles AUSSER einen Slash enthalten. Das ist etwas flexibler, falls es beliebig viele Vornamen sein können, was vermutlich der Fall ist.
lg,
Xela
das kommt auch drauf an, welche Zeichen die Namen enthalten können und wie die anderen Zeilen aufgebaut sind.
Möglichkeit 1:
sed 's/\(1 NAME [a-zA-Z-]\+ [a-zA-Z-]\+\)\//\1 \//'
Die zwei (!) Namen vor dem Slash dürfen nur Buchstaben und das "-" enthalten. Dazwischen muss ein Leerzeichen stehen.
Möglichkeit 2:
sed 's/\(1 NAME [^/]*\)\//\1 \//'
Die Namen (=Zeichen vor dem ersten Slash) dürfen alles AUSSER einen Slash enthalten. Das ist etwas flexibler, falls es beliebig viele Vornamen sein können, was vermutlich der Fall ist.
lg,
Xela
Besten Dank für deine Erklärung. Waren sehr hilfreich für mich als Anfänger!