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"[ :]" "{print $2}" test.txt Engineer Doctor GovntJob Master
-F[ :]
(1つarg)-F[:
と]
を取得しました。 このグラフは非常に便利です(一重引用符または二重引用符の縦の矢印に注意してください)。