ああ、私は閉じ込められた。

ああ、私は閉じ込められた。

私が進めている作業プロジェクトがあります。私が作成しているスクリプトは最初に2つのパラメータを使用します。 1つは一意の識別子、もう1つはログファイル(両方の文字列)です。これで、一意の識別子を解析する最初の部分が完了しました。しかし、2番目の部分は、ランダムに生成された数値と文字の文字列である特定の文字列を解析することです。

私はawkこのランダムな文字列を取得するためにステートメントを使用しており、Rubularで私の表現が正しいことを確認しました。ただし、より多くのコードでコードをテストしようとすると、何も印刷されません。私がコマンドラインに入力した内容は次のとおりです。

awk '/\s=\s[a-zA-Z0-9-]+/ {print }' ~/jlog/server.log | more

私のスクリプトの内容は次のとおりです。

for j in $(cat ~/jlog/"$2"); do awk '/'"$1"'/\s=\s[a-zA-Z0-9-]+/ {print}'

これは私が分析しているログフラグメントです。

2014-06-17 15:34:52,406 INFO  [random.random.xxx.message.Random] Processed instance (1.2.840.113619.2.284.3.2013961368.890.1402186239.15
5/1.2.840.113619.2.80.1944071037.22604.1402323463.136) from [email protected] to Random_AE.  AssociationID = 9eddb1b0-368e-4fb9-a684-44cc14be389c

特に、協会IDの後にランダムなコードを探しています。結果を表示する方法に関する提案はありますか?わかりません。

ベストアンサー1

試してみてください

awk '$3=="INFO" && $(NF-2)=="AssociationID" && $(NF-1)=="=" { print $NF }' ~/jlog/server.log

また、ログファイル名を直接渡してawk使用を避けることもできます。forcat

おすすめ記事