[gelöst!] Grep/cat findet immer nur die erste URL in der Textdatei

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
desputin
Beiträge: 1349
Registriert: 24.04.2015 17:16:34

[gelöst!] Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von desputin » 02.03.2022 20:59:29

Hallo Ihr,

ich versuche eine Liste von URLs aus einer Textdatei zu ziehen:

Code: Alles auswählen

cat test.txt | grep -Eo "[https://www.desputin.de/abc/][a-zA-Z0-9./?=_%:-]*.html" | sort -u > OUTPUT-URLs.txt
Leider grept er mir immer nur die 1. URL aus der Textdatei test.txt, aber nicht alle anderen. Wißt Ihr, wie ich mit dem Befehl alle URLs finden kann, die in der teset.txt enthalten sind?

Viele Grüße desputin
Zuletzt geändert von desputin am 02.03.2022 23:30:26, insgesamt 1-mal geändert.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von JTH » 02.03.2022 21:06:32

Nur die erste URL aus der ganzen Datei oder jeweils einer Zeile?

Hilfreich wäre eine oder mehrere Beispielzeilen aus erwähnter Datei.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
desputin
Beiträge: 1349
Registriert: 24.04.2015 17:16:34

Re: Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von desputin » 02.03.2022 21:13:25

Ok, also hier die Phantasie-Datei test.txt:

Code: Alles auswählen

Beispiel https://www.desputin.de/abc/1234.html   / grep -x '>.*</li>' input-file#  Beispiel https://www.desputin.de/abc/dddd.html   / grep -x '>.*</li>' input-file#  Beispiel https://www.desputin.de/abc/fdfdf.html   / grep -x '>.*</li>' input-file#  Beispiel https://www.desputin.de/abc/aaaaaa.html   / grep -x '>.*</li>' input-file#  Beispiel https://www.desputin.de/abc/dmc.html   / grep -x '>.*</li>' input-file#  Beispiel https://www.desputin.de/abc/dmc.html   / grep -x '>.*</li>' input-file  / grep -x '>.*</li>' input-file#  Beispiel https://www.desputin.de/abc/454545.html
Ist nur Kauderwelsch, aber ich möchte halt alle diese URLs in eine Datei OUTPUT-URLs.txt geschrieben haben, eine URL pro Ziele. Nicht nur die erste URL.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

tobo
Beiträge: 2347
Registriert: 10.12.2008 10:51:41

Re: Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von tobo » 02.03.2022 21:18:47

Aus der Zeile. Übrigens ist das eine Zeichenklasse "[https://www.desputin.de/abc/]" und spricht nur ein Zeichen an, hat allerdings für das Ergebnis überhaupt keine Relevanz, weil der Allquantor * danach alles frisst. Ist es eigentlich so schwierig, bei solchen Sachen eine genügend große Eingabe und die dazu erwartbare Ausgabe zu zeigen?

Benutzeravatar
desputin
Beiträge: 1349
Registriert: 24.04.2015 17:16:34

Re: Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von desputin » 02.03.2022 21:24:19

hallo Tobo, das habe ich jetzt nicht verstanden. Wo liegt denn der Fehler in meinem Befehl?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

tobo
Beiträge: 2347
Registriert: 10.12.2008 10:51:41

Re: Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von tobo » 02.03.2022 21:51:07

Das weiß ich nicht:

Code: Alles auswählen

$ grep -Eo "[https://www.desputin.de/abc/][a-zA-Z0-9./?=_%:-]*.html" test.txt | sort -u > OUTPUT-URLs.txt && cat OUTPUT-URLs.txt
https://www.desputin.de/abc/1234.html
https://www.desputin.de/abc/454545.html
https://www.desputin.de/abc/aaaaaa.html
https://www.desputin.de/abc/dddd.html
https://www.desputin.de/abc/dmc.html
https://www.desputin.de/abc/fdfdf.html

Benutzeravatar
desputin
Beiträge: 1349
Registriert: 24.04.2015 17:16:34

Re: Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von desputin » 02.03.2022 23:30:10

Hallo tobo, super, vielen Dank, das ist doch eine super Lösung!
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

tobo
Beiträge: 2347
Registriert: 10.12.2008 10:51:41

Re: [gelöst!] Grep/cat findet immer nur die erste URL in der Textdatei

Beitrag von tobo » 02.03.2022 23:45:37

Das wundert mich nicht, dass dir die "Lösung" gefällt, denn es ist schließlich genau deine Lösung aus deinem 1. Beitrag. Ich habe sie lediglich umgestellt (uuoc), aber sie funktioniert auch, wenn man sie 1:1 aus deinem Beitrag übernimmt. Ergo - deine Fehlerbeschreibung deckt sich schlicht nicht mit den Tatsachen und der Reguläre Ausdruck ist wegen den bereits angesprochenen Punkten immer noch Mist.
Edit:
https://de.wikipedia.org/wiki/Cat_(Unix ... seless_Use
https://de.wikipedia.org/wiki/Regul%C3% ... er_Auswahl
https://de.wikipedia.org/wiki/Regul%C3% ... #Quantoren

Antworten