- - PR -
文字列操作の方法
1
投票結果総投票数:7 | |||
---|---|---|---|
UNIX | 7票 | 100.00% | |
|
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-04-02 10:36
初歩的な質問ですが、どなたか教えてください。
unix上で出力されてたログファイルを使用してその日のJOB処理時間を取得したいと 思っています。 batchresult_01_01_090331121001.log batchresult_01_02_090331121109.log batchresult_01_03_090331121201.log batchresult_01_04_090331121411.log ・ ・ ・ ・ ・ ログファイルの中最後の方に以下の処理時間の結果が出力されています。 →経過:00:00:30.25 ログのファイル名は、 JOBNAME_YYMMDDHHMISS.log形式でファイル名が付けられて出力されています。 これを 処理対象の日付=>090331と任意に入力してファイルに出力するにはどうすればいいでしょうか? <結果>このように出力したい 090331,batchresult_01_01,00:00:30.25 090331,batchresult_01_02,00:00:40.05 090331,batchresult_01_03,00:00:10.55 090331,batchresult_01_04,00:00:20.25 cat *090401*.log|grep '経過:' で行うと cat *090401*.log|grep '邨碁℃:' と替わってしまい何もでません。 shellとかで作らないできないのでしょうか? どなたか教えて頂けないえしょうか? お願いします。 OS:Solaris 9 SHELL=/usr/bin/ksh |
|
投稿日時: 2009-04-02 11:45
文字コードがわかりませんが
cat *090401*.log | grep $'\x??'$'\x??' のように16進でやってみるとか |
|
投稿日時: 2009-04-02 11:51
任意に入力を受け付けるならshellscriptにすることになるのでは。
仕様をいまいち理解してませんが、 #!/bin/sh for FN in `ls batchresult_*_$1*`; do echo "$1,`echo ${FN}|awk '{print substr($1,1,17)}'``tail -1 ${FN}|awk '{print substr($1,6)}'`" done こんな? findでもできそうだけどパス。 |
1