
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