wie filtert man eine Datei, um Zeilen zu erhalten, die ausschließlich aus Paaren wiederholter Ziffern bestehen?

wie filtert man eine Datei, um Zeilen zu erhalten, die ausschließlich aus Paaren wiederholter Ziffern bestehen?

Ich habe eine Datei mit Zahlen, die mit beginnen

00000000
00000001
00000002
.
.
.
99999999

Ich möchte es in Bash filtern, sodass die Ausgabe wie folgt aussieht:

00000000
00000011
00000022
.
.
11223344
11223355
.
.
99999977
99999988
99999999

Antwort1

Es scheint, als ob Sie tatsächlich wollenFilterdie Datei, anstatt sie zu sortieren - insbesondere, um nur die Zeilen auszugeben, die vollständig aus Paaren wiederholter Zeichen oder (genauer gesagt) Ziffern bestehen. So kann man zum Beispiel mit grepetwas wie

grep -Ex '((.)\2)+' yourfile

oder den PCRE-Modus verwenden, um die Erfassung der äußeren Gruppe zu vermeiden

grep -Px '(?:(\d)\1)+' yourfile

Antwort2

Angenommen, alle Ihre Zahlen haben acht Ziffern und befinden sich in einer Datei namens nums.txt, können Sie die awk-String-Funktion von substr verwenden, um alle Zeilen herauszufiltern, deren letzte beiden Zeichen gleich sind:

awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt

Sie erhalten dann:

    00000000
    00000011
    00000022
    00000055

....

verwandte Informationen