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機能を利用するにはどうすればよいですか?

コメント

  • に加えてしかし、'の答えは、シェルが引用符で囲まれていない空白で分割されてawkの引数のリストが作成されるため、-F[ :](1つarg)-F[:]を取得しました。 このグラフは非常に便利です(一重引用符または二重引用符の縦の矢印に注意してください)。
  • ArielCoに感謝します。

回答

順調です!

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です