茶トラ猫エンジニア

フリーランスとして働く、先が見えないエンジニアのメモ帳

awk

awkで最後から2番目のカラムの値を取得する

awk

Apache のアクセスログを見ていたら、リクエストの処理に掛かった時間が最後から 2 番目に出力されるログ設定になっていました。 ちなみに、%T が秒で、%D がマイクロ秒となるので、用途に合わせて出力しておくと調査時に便利です。 さて、そんな処理時間を…

awkで特定のカラムに文字列が含まれているか判定

awk

awk を使ってテキスト解析をする際に、目的の値が決まった場所にあれば楽なのですがそうでない時もあります。 今回は apache のアクセスログのリクエスト URL の中から、特定のリクエストパラメータが含まれているログを抽出したいと思います。 ただし、ログ…

awkでapacheやnginxのアクセスログから欲しい情報を抜き出す

Apache のアクセスログを見る場面に遭遇すると、決まって「あのコマンド何だったっけ?」って状況に陥るので、忘れないうちにメモっておきます。 もっとたくさんあったんだけど、また思い出したら追記していきます。 今回は Apache を例にしますが nginx の…

awkのコマンド内でシェル変数を使う方法

awk

アクセスログから特定のレスポンスステータスを抜き出す簡易的なスクリプトを作っていたのですが、awk の中でシェル変数を使う機会があったので備忘録として残しておきます。 今まで使う機会なかったのですが少しハマりました。 シングルクォートの使い方が…

awkで文字列にシングルクォーテーションを付けて出力する

awk

awk は特定の区切り文字で文字列を区切る時に多用しますが、区切った文字に他の文字列を連結することもあります。 通常の文字なら問題ないのですが、シングルクォーテーションだけは少し特殊です。 今回はこのようなケースを想定して、出力した文字にシング…

awkで指定したカラム以降をprint表示する

awk

以前 awk で最後のカラム以外を表示してみましたが、今回は指定したカラム以降のカラムを全部表示したいと思います。 例えば、7 個の文字列がカンマで区切られているファイルがあるとしたら、3 番目のカラム以降を表示する場合は、$3 $4 $5 $6 $7 を指定すれ…

awkで指定した範囲の値を抜き出す

awk

アクセスログの解析などで awk は非常に重宝します。 区切り文字を指定すると、パースされた列(カラム)の値を簡単に表示することができます。 しかし表示したい列が多くなると、カラムの指定も多くなるのでちょっとかっこ悪くなってしまう場合もあります。 …