$ echo ABC | awk '$0 ~ /^[a-b]/'
ABC
$ echo ABC | awk '$0 ~ /^[a-a]/'
$ echo ABC | awk '$0 ~ /^a/'
$
Sie sehen. /[a-b]/
erfasst A
, aber /[a-a]/
oder /a/
nicht. Warum?
regular-expression
awk
Cheng
quelle
quelle
Antworten:
Ich denke, es ist ein "Gebietsschema" -Problem.
In meinem Gebietsschema it_IT das folgende Snippet
zeigt an
das
A
ist also (überraschenderweise) zwischena
undb
, also im bereich.Versuchen Sie es auszuführen
Bearbeiten
Der folgende Befehl zeigt die Sortierreihenfolge in Ihrem Gebietsschema an:
Die Ausgabe auf meinem Computer ist
(kann auf der Handbuchseite von bash nicht verstehen, ob Sequenzausdrücke in der Reihenfolge der Sortierung des Gebietsschemas erweitert sind oder nicht; es scheint nicht).
quelle
sort
,join
beginne ich meine Skripte mitexport LC_COLLATE=C
. Jetzt muss ich auf diese Weise auch Skripte mitawk
:)