it-swarm.com.de

Wie geht das mit einem einzigen Befehl unter Ubuntu 16.04?

Ich habe eine URL-Datei im folgenden Format:

com.blendtuts/S
°=
com.blengineering.www/:http
±=
com.blenheimgang.www/le-porsche-museum-en-details/porsche-museum-3
²=
com.blenheimsi
³=
com.blenkov.www/page/media/18/34/376
´=
com.blentwell.www/bookmarks.php/jackroldan/sp
¸=
com.blentwell.www/tags.php/I

Die Dateigröße ist in GigaBytes. Sagen wir etwa 250 GB der Dateigröße.

Ich habe versucht, die Wörter in der Datei umzukehren und nur die Domänen aus dem Text zu extrahieren. Ich habe versucht, es mit Ubuntu OS Terminal-Befehlen zu machen. Lassen Sie mich Ihnen sagen, was ich versucht habe:

Zuerst entfernte ich die Daten nach "/" mit dem folgenden Befehl:

~$ ex -sc '%s/\(\/\).*/\1/ | x' newfile.txt > ddm.txt

Und das Ergebnis als:

com.blendtuts/
 °=
com.blengineering.www/
±=
com.blenheimgang.www/
²=
com.blenheimsi
³=
com.blenkov.www/
´=
com.blentwell.www/
¸=
com.blentwell.www/

Jetzt habe ich den vollständigen Text in der Datei mit der folgenden Lösung umgekehrt: https://stackoverflow.com/questions/40467918/how-to-reverse-the-Word-in-ubunt

Und bekam folgendes Ergebnis:

    /blendtuts.com
    °= /www.blengineering.com
    ±= /www.blenheimgang.com
    ²= blenheimsi.com
    ³= /www.blenkov.com
    µ=  /www.blentwell.com
    ¶=  /www.blentwell.com
    •=  /www.blentwell.com

/www.blentwell.com

Aber das Problem ist immer noch nicht gelöst. Ich möchte wissen, wie es möglich ist, URLs mit Ubuntu zu extrahieren und in eine andere Datei zu kopieren. Wie Sie oben sehen können, ist die Ausgabe, die ich noch habe, nicht die Domäne, sondern hat einen Backslash.

Wenn es eine andere Lösung für ein solches Problem mit einem anderen Betriebssystem gibt, lassen Sie es mich wissen. Ich bevorzuge Ubuntu.

Ich möchte Domains aus der Datei extrahieren und sie in eine andere Datei und das auch in einem geeigneten Format trennen.

Wenn ich die eindeutige Domain erhalte, ist dies eine hervorragende Lösung für meine Anfrage. Ansonsten benutze ich den Befehl als:

$ sort filename.txt | uniq > save_to_file.txt

Bitte versuchen Sie nicht, mir eine Lösung mit dem Befehl awk zu geben, da dies auf meinem System nicht funktioniert.

Beispieldaten:

com.blendschutzrollo.www/d_chefsessel6_Maxx_Chefsessel_mit_Kopfstutze_Chefdrehsessel___Munchen__374
¯= 
com.blendtuts/S
°= 
com.blengineering.www/:http
±= 
com.blenheimgang.www/le-porsche-museum-en-details/porsche-museum-3
²= 
com.blenheimsi
³= 
com.blenkov.www/page/media/18/34/376
´= 
com.blenoir.www/lat
µ= 
com.blentwell.www/bookmarks.php/bashment%20jack/re
¶= 
com.blentwell.www/bookmarks.php/djcable/rt
·= 
com.blentwell.www/bookmarks.php/jackroldan/sp
¸= 
com.blentwell.www/tags.php/I
¹= 
com.blentwell.www/tags.php/eurot
º= 
com.blentwell.www/tags.php/mitarbeiters
»= 
com.blentwell.www/tags.php/verw
¼= 
com.blenzblog/tag/olympic-w
½= 
com.blepharoplastyusa.www/albany-n
¾= 
3
Jaffer Wilson

Ein Perl-Lösung, die Anpassung eine der Stringumkehr Lösungen :

$ Perl -F/ -anle 'print reverse(split("([^.]*)", $F[0])) if /\./' input
www.blendschutzrollo.com
blendtuts.com
www.blengineering.com
www.blenheimgang.com
blenheimsi.com
www.blenkov.com
www.blenoir.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
blenzblog.com
www.blepharoplastyusa.com

Die Argumente:

  • -F/ -a Erstellt aus jeder Eingabezeile ein Array F, das auf / Aufgeteilt wird.
  • -nle Führt den Ausdruck (-e <expr>) In jeder Eingabezeile aus, ohne ihn automatisch zu drucken (-n), Während die neue Zeile am Ende jeder Zeile (-l)
  • Die Zeile ist bereits auf / Aufgeteilt, und wir benötigen nur den Teil vor dem ersten /, Also das erste Element des Arrays F: $F[0]. Dann teilen wir es auf . Und kehren jedes davon um und drucken, wenn die Zeile . Enthält.

Jetzt können Sie dies sort -u.

6
muru

Wie wäre es einfach alles zwischen 'com' und 'www' zu bekommen? Und drucken Sie sie durch "sed"

sed -ne 's/com\.\(.*\)\.www\(.*\)/www.\1.com/p' infile

Dies ignoriert zwei Zeilen Ihres Eingabebeispiels ohne 'www'.

1
αғsнιη