awkで正規表現をフィールド区切り文字として使用するには?

awkで正規表現をフィールド区切り文字として使用するには?

私が読んだところでは、正規表現を使用しようとしていますが、awk構文を正しく理解できません。

rpm -qa | awk '{ 'FS == [0-9]' ; print $1 }'
awk: cmd. line:1: { FS
awk: cmd. line:1:     ^ unexpected newline or end of string

アイデア?明確でない場合、目的はバージョン番号なしでソフトウェアのリストを取得することです。

ベストアンサー1

引用とフレーズを台無しにしました。入力フィールド区切り文字を設定するには、-Fコマンドラインでオプションを使用する最も簡単な方法があります。

awk -F '[0-9]' '{ print $1 }'

または

awk -F '[[:digit:]]' '{ print $1 }'

入力フィールド区切り文字として数字を使用し、各行の最初のフィールドを出力します。

そして[0-9]その表現[[:digit:]]はそうではありません。かなり地域によって同じです。望むより」[0-9]、[[:digit:]]、\dの違い」。

プログラム自体内で設定することもできますFS。これはワンタイム初期化であるため、awk通常はブロックで行われます。BEGIN

awk 'BEGIN { FS = "[0-9]" } { print $1 }'

シェルで一重引用符で囲まれた文字列内では一重引用符を使用できませんawkいつも二重引用符を使用してください。

おすすめ記事