[geloest]sed zahlenfolge ersetzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
caligulay
Beiträge: 3
Registriert: 04.02.2022 18:16:36

[geloest]sed zahlenfolge ersetzen

Beitrag von caligulay » 04.02.2022 18:22:44

mein vorhaben. ich hab ne liste mit fortlaufenden nummereierungen.

sieht aktuell in etwa so aus:
foo=DE024:bar
der teil DE024: soll weg. ich komm nichtmal zu ner idee. kann mir jemand helfen bitte.

wobei "DE024" eine fortlaufende nummerierung ist die von 001-* geht.


Hier meine lösung dank eurer tipps:

sed -i -e 's/[A-Z][A-Z][0-9][0-9][0-9]://g' ipfull.m3u;

macht für mich genau was es soll
Zuletzt geändert von caligulay am 08.02.2022 10:48:35, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed zahlenfolge ersetzen

Beitrag von Meillo » 04.02.2022 19:13:31

[0-9] matcht eine Ziffer. Wenn du das dreimal hintereinander verwendest, dann matcht es drei Ziffern hintereinander.

Kannst du damit etwas anfangen?

Kannst du sed grundsaetzlich verwenden oder brauchst du da auch noch Hilfe?

Ich koennte dir hier natuerlich auch gleich eine fertige Loesung hinschreiben, aber besser ist es natuerlich wenn du selber dazulernst.
Use ed once in a while!

caligulay
Beiträge: 3
Registriert: 04.02.2022 18:16:36

Re: sed zahlenfolge ersetzen

Beitrag von caligulay » 04.02.2022 19:15:43

grundsätzlich ja, steh nur grad aufm schlauch. dein hinweis ist schonmal hilfreich, nein fertig lösung will ich gar keine haben hilfe zur selbsthilfe ist genau was ich suche.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed zahlenfolge ersetzen

Beitrag von Meillo » 04.02.2022 19:21:45

Verstehe ich es richtig, dass du eine Textdatei hast, in der solche Eintrage sind:

Code: Alles auswählen

foo=DE024:bar1
blub=FR123:bar2
quux=IT007:bar3
fizz=ES021:bar4
fazz=PL028:bar5
...
?

Sagen wir mal die Datei heisst a.txt, dann kannst du sed damit so anwenden:

Code: Alles auswählen

sed 's/[0-9]/X/' a.txt
Fuehre das aus, schaue was dabei rauskommt. Dann aendere was im sed-Befehl und schaue wie sich das Ergebnis veraendert. So solltest du weiter kommen.
Use ed once in a while!

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: sed zahlenfolge ersetzen

Beitrag von eggy » 05.02.2022 04:09:30

awk kann da auch praktisch sein, angenommen die Daten sehen so aus:

Code: Alles auswählen

foo=DE024:bar1
bar=DE025:bar2
wie man nach etwas längerem draufschauen sieht, haben wir hier drei Spalten:
foo/bar | DEzahlen | barIrgendwas
Als Feldtrenner dienen dabei nun zwei Zeichen, "=" und ":".
Mehrere Feldtrenner gibt man zum Beispiel via -F wie folgt an

Code: Alles auswählen

awk -F '[:=]' '{print $1 " - " $3 }' daten.txt

caligulay
Beiträge: 3
Registriert: 04.02.2022 18:16:36

Re: sed zahlenfolge ersetzen

Beitrag von caligulay » 06.02.2022 22:17:06

Meillo hat geschrieben: ↑ zum Beitrag ↑
04.02.2022 19:21:45
Verstehe ich es richtig, dass du eine Textdatei hast, in der solche Eintrage sind:

Code: Alles auswählen

foo=DE024:bar1
blub=FR123:bar2
quux=IT007:bar3
fizz=ES021:bar4
fazz=PL028:bar5
...
?

Sagen wir mal die Datei heisst a.txt, dann kannst du sed damit so anwenden:

Code: Alles auswählen

sed 's/[0-9]/X/' a.txt
Fuehre das aus, schaue was dabei rauskommt. Dann aendere was im sed-Befehl und schaue wie sich das Ergebnis veraendert. So solltest du weiter kommen.

vielen dank hat mich dahin gebracht wo ich hin wollte. läuft wie gewünscht. manchmal ist so ein kleiner schubs in die richtige richtung :D

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed zahlenfolge ersetzen

Beitrag von Meillo » 07.02.2022 06:58:27

Sehr schoen; das freut mich.

Kannst du bitte deine letztliche Loesung noch posten und den Thread als geloest markieren (d.h. den ersten Beitrag bearbeiten und den Titel um [geloest] ergaenzen). Danke.
Use ed once in a while!

Antworten