Verwenden einer Zeichenklasse zum Formatieren einer Zahlenliste in ein Postleitzahlenformat

Verwenden einer Zeichenklasse zum Formatieren einer Zahlenliste in ein Postleitzahlenformat

Ich habe versucht, eine Liste von Zahlen in ein Postleitzahlenformat (fünf Ziffern) zu formatieren. sedDazu habe ich das Dienstprogramm verwendet. Nehmen wir an, file.txtes enthält „23232334“, „3434654“, „33532“, „94607“. In mein Skript habe ich geschrieben:

sed -n '/^[0-9] [0-9] [0-9] [0-9] [0-9]$/p' file.txt

aber es hat nicht funktioniert.

Ich habe auch versucht

sed -n '/^[[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]]$/p' file.txt

Nach meinem Verständnis von Zeichenklassen sollten diese Schritte funktionieren, aber ich weiß nicht, warum ich keine Ausgabe erhalte.

Bitte helfen Sie

Danke

Antwort1

Es gibt viele Gründe, warum Ihre Befehle nicht funktionieren. Zunächst einmal haben Sie Leerzeichen zwischen den Zahlen und sedsuchen nach Ziffern, die durch Leerzeichen getrennt sind. Zweitens, wenn Sie schreiben ^und $verlangen, dass die fünfstellige Zahl die ganze Zeile einnehmen soll, bestehen von den vier Zahlen in Ihrem Beispiel nur die letzten beiden den Test. Ist das, was Sie wollen?

verwandte Informationen