awk

手段のために目的を忘れたと揶揄された件の続きみたいな話だが、またしても同じような作業が必要になった。やはり xml ファイルを切りだして、excel (calc) に変換するという作業だ。

<?xml version="1.0" encoding="utf-8" ?>
  <MonitorLog>
    <Categories>
      <Category name=".NET CLR Data" help=".Net CLR データです。">
        <Objects>
          <Object name="SqlClient: Current # pooled and nonpooled connections" help="接続 (プールされているかどうかは不問) の現在の数です。"/>
          <Object name="SqlClient: Current # pooled connections" help="プロセスに関連付けられているすべてのプールに現在含まれる接続の現在の数です。"/>
            <Object name="SqlClient: Current # connection pools" help="プロセスに関連付けられているプールの現在の数です。"/>
            <Object name="SqlClient: Peak # pooled connections" help="全プールをとおし、プロセスの開始以降の接続の数です。"/>
            <Object name="SqlClient: Total # failed connects" help="接続を試みようとしたものの、何らかの理由で失敗した接続の合計数です。"/>
            <Object name="SqlClient: Total # failed commands" help="実行を試みたものの、何らかの理由で失敗したコマンドの合計数です。"/>
          </Objects>
        <Instances/>
      </Category>
      <Category name=".NET CLR Exceptions" help="CLR 例外処理のランタイム統計です。">
        <Objects>

途中で目的を忘れてしまった前回と同じやり方だと、grep で Category と Object の含まれる行だけを抜き出し、sed で 不要な部分を置換して、テキストエディタで若干の整形処理を行ってから calc に読み込む…ということをしたのだが、途中で気づいた awk 一発ぢゃん!をやってみることにした。

awk -F ” {print $2 “t” $4;} filename.xml > filename.csv

不要な行の削除処理はしていないが、ホントに一発だった。なんてこった。

投稿者:

azira

何でもやったけれど、みんな中途半端なプログラマくずれの一匹うさぎ。

“awk” への2件のフィードバック

  1. Windowsだとawkを用意している間に目的を忘れそうです

    1. それはそれ、BSDだから最初から入ってるし。
      でも、awk と gawk ってどんだけ違うんだろう?

コメントを残す

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>