回答:
引用符と構文を台無しにしました。入力フィールドの区切り文字を設定する最も簡単な方法は-F
、コマンドラインのオプションを使用することです。
awk -F '[0-9]' '{ print $1 }'
または
awk -F '[[:digit:]]' '{ print $1 }'
これは、入力フィールドの区切り文字として任意の数字を使用し、各行から最初のフィールドを出力します。
表現はありません、非常にあなたのロケールに応じて、同じ。「[0-9]、[[:digit:]]および\ dの違いを参照してください[0-9]
[[:digit:]]
。
プログラム自体に設定FS
することもできawk
ます。これはBEGIN
1回限りの初期化であるため、通常はブロックで実行されます。
awk 'BEGIN { FS = "[0-9]" } { print $1 }'
シェル内の単一引用符で囲まれた文字列には単一引用符を使用できず、awk
文字列は常に二重引用符を使用することに注意してください。
Kusalanandaの回答に対して+1。または、FS変数をBEGINブロックで設定できます。
awk 'BEGIN {FS="[0-9]"} {print $1}'
アクションブロック内のFSの変更は、次の行が読み取られるまで有効になりません。
$ printf "%s\n" "abc123 def456" "ghi789 jkl0" | awk '{FS="[0-9]"; print $1}'
abc123
ghi
質問の他のエラー:
==
比較演算子で=
あり、変数の割り当てに使用します