- PR -

文字列操作の方法

1
投票結果総投票数:7
UNIX 7 100.00%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
まさぴ
会議室デビュー日: 2009/04/02
投稿数: 1
投稿日時: 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

デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-04-02 11:45
文字コードがわかりませんが

cat *090401*.log | grep $'\x??'$'\x??'

のように16進でやってみるとか
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)