テキストファイルからオプションで列を出力します。

テキストファイルからオプションで列を出力します。

最初の列と特定のパターンに続くテキストを取得するログファイルを解析しようとしています。

ログファイルは次のとおりです。

2018-04-25 00:00:10,139 INFO  [HiveServer2-HttpHandler-Pool: Thread-2678420]: parse.ParseDriver (ParseDriver.java:parse(185)) - Parsing command: show databases

タイムスタンプ(最初と2番目の列)とキーワードを含むすべてのコマンドの最終出力が必要ですcommand:

これを得るためのきれいな方法はありますか?現在私の計画はawksedコマンドをインポートしてから、2つの出力を新しいファイルにマージするために使用されます。

答え1

以下を使用してこれを実行することもできますcut

cut -d' ' -f1,2,12- ${YOUR_LOG_FILE}

または(より安全な):

cat ${YOUR_LOG_FILE} | tr -s " " | cut -d' ' -f1,2,11-

答え2

これはしなければならない

awk -F'(,|command:)' '{print $1, $NF}' infile
2018-04-25 00:00:10  show databases

ここでは、フィールド区切り文字であるカンマまたは文字列を,定義し、最初のフィールドcommand:と最後のフィールドを印刷します。

関連情報