awkの2つのフィールド区切り文字(コロンとスペース)

awkの2つのフィールド区切り文字(コロンとスペース)

awkコマンドで2つのフィールド区切り文字のうちの1つが空白の場合、どのように指定しますか? awkに含まれているif-else条件を使用すると、これを行うことができると思いますが、正確なコマンドはわかりません。

サンプルファイルは次のとおりです。

cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000

2番目の列($ 2)を印刷したいです。予想される出力は次のとおりです。

Engineer
Doctor
GovntJob
Master

フィールド区切り文字でスペースとコロンの両方を使用しようとすると、構文エラーが発生し、失敗します。

awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error

2つのフィールド区切り文字をどのように使用し、awk機能を利用できますか?

ベストアンサー1

あなたは正しい道を行っています!
周囲に足りない引用符を追加するだけです[ :]

awk -F'[ :]' '{print $2}' test.txt
Engineer
Doctor
GovntJob
Master

おすすめ記事