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 grep
etwas 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
....