Hallo zusammen,
ich überführe gerade die Adressen meiner Partnerin von Apple auf Linux. Aufgrund der vorherigen Datenlage und des Export - Import - Geschehens habe ich jetzt eine .vcf-Datei mit knapp 1400 Addressen.
Darin sind sowohl viele Adressen doppelt und mehrfach vorhanden als auch in den Einträgen einzelner Adressen jeweils einzelne Zeilen.
Ich bin dabei ein Script zu schreiben das das bereinigt.
Der erste Schritt ist dabei das Löschen von Duplikatzeilen eines Eintrags. Das sollte mit sed gut gehen.
Da aber z.B. die Telefonnummer von Axel auch bei Berta nochmal stehen kann soll sed jeweils nur die Zeilen m bis n bearbeiten, eben Axels Eintrag (mit readarray ermittelt).
Ich bin Anfänger im scripten. Über RegExp habe ich vor ein paar Wochen mit Begeisterung gelesen und bin von den Möglichkeiten grundsätzlich begeistert, aber Können ist etwas gaanz anderes.
Ich hab jetzt einige Stunden probiert (irgendwann auch mit for - do - done, aber letztlich viel zu umständlich und andere Fehlerquellen), muss mich aber geschlagen geben.
Textteile zu ersetzen funktioniert mit z.B. sed -i '1,8s/alt/neu/g' ./datei.
Will ich löschen mit sed -i '1,8d/alt/neu/g' ./datei dann bekomme ich sed: -e Ausdruck #1, Zeichen 5: Zusätzliche Zeichen nach dem Befehl:
frank@7470tw:~/bin/add> sed -i '1,8d/tee/neu/g' ./vb
sed: -e Ausdruck #1, Zeichen 5: Zusätzliche Zeichen nach dem Befehl
frank@7470tw:~/bin/add>
Versuche ich sed -i '1,8/tee/neu/d' ./vb wird mir sed: -e Ausdruck #1, Zeichen 4: Unbekannter Befehl: »/« gemeldet:
frank@7470tw:~/bin/add> sed -i '1,8/tee/neu/d' ./vb
sed: -e Ausdruck #1, Zeichen 4: Unbekannter Befehl: »/«
frank@7470tw:~/bin/add>
Mir schwirrt der Kopf vor lauter RegExp-Leseversuchen auf verschiedensten Seiten... und mit try-and-error habe ich wohl alle Iterationen durch.
Wo mache ich den Fehler?
Nachtrag: Alle Iterationen bis auf die Richte wohl...