Sie haben Ihre Anführungszeichen und die Syntax durcheinander gebracht. Um das Trennzeichen für Eingabefelder festzulegen, verwenden Sie am einfachsten die -F
Option in der Befehlszeile:
awk -F '[0-9]' '{ print $1 }'
oder
awk -F '[[:digit:]]' '{ print $1 }'
Dies würde eine beliebige Ziffer als Eingabefeldtrennzeichen verwenden und dann das erste Feld aus jeder Zeile ausgeben.
Die Ausdrücke [0-9]
und [[:digit:]]
sind je nach Gebietsschema nicht ganz gleich. Siehe " Unterschied zwischen [0-9], [[: digit:]] und \ d ".
Man könnte auch FS
im awk
Programm selbst einstellen . Dies geschieht normalerweise in einem BEGIN
Block, da es sich um eine einmalige Initialisierung handelt:
awk 'BEGIN { FS = "[0-9]" } { print $1 }'
Beachten Sie, dass einfache Anführungszeichen in einer Zeichenfolge in Anführungszeichen in der Shell nicht verwendet werden können und dass awk
Zeichenfolgen immer doppelte Anführungszeichen verwenden.