- ベストアンサー
AWKにて時刻差分を取得したい
お世話になります。 現状、以下のログがあるのですが、 <snip> 日時, 通信開始時刻, 通信終了時刻・・・ 2008/4/8, 14:00:00.3, 14:10:00.5, ・・・ <snip> で、AWK(awk -F , )にて時刻差分を取得したいと考えたのですが、 $3-$2の出力結果が"0""-1"になり、表示されません。 うまく時刻差分を取得する方法はないでしょうか。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- 時刻フォーマットの編集
時刻フォーマットの編集方法について 教えてください。 以下の様な時刻(CLF の時刻の書式)を YYYYMMDDの形に変更したいのですが 何かいい案を頂けないでしょうか? -------------------- 26/Mar/2005:18:22:15 +0900 -------------------- 可能ならば、Linuxのコマンド(awkコマンド等)で 行いたいのですが、JAVAなどでコーディングしないと駄目でしょうか?? ※具体的にいえば、Apacheが出力しているログ内の 日付書式をYYYYMMDDの形で取得したいのです。
- ベストアンサー
- Linux系OS
- ログの集計で
ログの集計で困っております。 そのログというのがジョブの開始時刻と終了時刻が別々の行に出力されているもので、 このログをジョブごとに開始と終了時刻を別々の行から取得し、出力結果は1行に1ジョブで出したいと考えています。 ログがUNIXのログなので、当初はshellスクリプトでと思っていたのですが、 shellだとログを何度も先頭から読み込む形となり、perlで可能ではないかと思い、質問させていただきました。 perlはあまり詳しくはないですが、よろしくお願いいたします。 元のログイメージ ~~~ここから~~~ START 08:00:00 Job001 START 08:05:00 job002 END 08:07:01 job001 START 08:08:00 job003 END 08:10:00 job002 : ~~~ここまで~~~ 出力イメージ ~~~ここから~~~ job001 08:00:00 - 08:07:01 job002 08:05:00 - 08:10:00 : ~~~ここまで~~~
- ベストアンサー
- Perl
- awkについての質問
実行環境:AIX5.2 シェル:Ksh 以下の2点をシェル内部で実行しているのですが、上手くいきません。 ご教授お願いいたします。 (1)System関数の実行結果(標準出力)をTERM上に表示させず、処理をしたい。 #!/usr/bin/ksh awk '{ system("ls -l") ###具体的にはls -l 結果の2行目、第一フィールドをawk内で変数に格納 }' (2)変数に格納された文字列のバイト数を取得し、変数に格納したい。 length()は文字数を取得できる事は理解したのですが、文字数ではなく、文字列のバイト数を取得したいです。awkに実装されている関数などありますでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- awkのセパレータ指定について
awkのセパレータ指定について教えてください。 以下のようなファイルがありそれを'||'区切りで出力したいです。 下記のような指定をしてみたのですが、 うまくいきませんでした。 cat text | awk -F '||' '{print $1}' [test.txt] aaa||bbb||ccc [期待する結果] print $1 → aaa print $2 → bbb print $3 → ccc どなたか教えてください。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプト grep
下記のようなファイルから年月をkeyとして2009/08/05以降のものだけを取得してくる方法がわかりません。 grepでは日時指定をしようにも方法がわからず、awkを使ってもいまいちうまくいきません。 何か方法ありますでしょうか 2009/08/04 08:00:07 開始 2009/08/04 08:00:07 終了 2009/08/05 08:00:07 開始 2009/08/05 08:00:07 終了 2009/08/05 08:00:07 開始 2009/08/05 08:00:07 終了 2009/08/06 08:00:07 開始 2009/08/06 08:00:07 終了
- 締切済み
- その他(プログラミング・開発)
- バッチファイルの時刻
下記は、6秒待って時刻を表示するのを繰り返す記述ですが、 「開始」の時間と「終了」の時間が同じになってしまいます。 【コード】 -------------------------------------------------- :flg_check if exist %FlgFile% ( echo %time% 開始 echo WScript.Sleep 6000 > %TmpFile% cscript //NoLogo %TmpFile% echo %time% 終了 goto flg_check ) -------------------------------------------------- 【結果】 -------------------------------------------------- 10:26:14.30 開始 10:26:14.30 終了 10:26:20.41 開始 10:26:20.41 終了 -------------------------------------------------- 開始時刻の6秒後の時刻が終了時刻にならないのですが、なぜでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- 指定した日時間の合計を取得したい
拙い質問文となりますがご容赦ください。 エクセルで関数を用いて、ある日時間の合計数を取得させたいです。 以下条件となります。 1.関数を組み込むファイルに日時を入力(A1に開始日時、A2に終了日時を入力) 2.別のファイルに管理されている日時に対応した数値を取得させたい (1.で入力したA1~A2までの間の合計を1.のファイルに出力させたい) 特定の日時を出力させるだけならsumifやhlookupの検索条件でA1を指定すればよいのですが、A1からA2までの合計、となると検索条件が組めません。 A1~A2の期間は基本的には1週間なので、強引にsumの中にhlookupを7つ組み込めばなんとかなりますが、ファイルのパスが長い為、スマートではありません) A1~A2の合計を取得する A1~7日間分の合計を取得する ※現在A1を始点として、A2からA1の差分を日時数として、その日時分取得する、という方法がうまくいきそうなイメージがありますが、実装まで至っていません。。。 よろしくお願い致します。
- 締切済み
- その他MS Office製品
- UNIX:ファイルから複数の特定の文字列を含む行以外を削除したい
お世話になります。 現在、仕事で、日に1度更新されるあるログファイルを確認しています。 そのログファイルは、数千行あり、その内容は (A)50種類ほどの記号 (B)開始日時 (C)状態 (D)終了日時 が含まれます。 今は、目視で開始日時、状態、終了日時の3種類の値を確認しているのですが ツールで自動化したいと考えています。 試したことは、grepで3つの状態を確認することです。 grep 開始日時 ログファイル >> 確認.log grep 状態 ログファイル >> 確認.log grep 終了日時 ログファイル >> 確認.log ですが、この方法だと、下記のようになって、それぞれの 対応関係がわかりずらいです。 ■確認.log ・開始日時 ・開始日時 ・開始日時 ・状態 ・状態 ・状態 ・終了日時 ・終了日時 ・終了日時 ですので、こんな感じで確認できればと思います。 ・開始日時 ・状態 ・終了日時 ・開始日時 ・状態 ・終了日時 ・開始日時 ・状態 ・終了日時 UNIXシェル有識者の方で、なにかヒントがあれば アドバイスを頂けますでしょうか。 以上、よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 開始時刻+経過時間=終了時刻になる計算式はありますか?
エクセルについてお尋ねします。 (1)下記のようにA3に"3"と入力するだけで3時間と認識する事は可能でしょうか? (2)上記の結果をふまえ、開始時刻(A1)に経過時間(A3)を足して終了時刻(A2)を表示する事は可能でしょうか? A1 → 9:00(開始時刻) A3 → 3(経過時間) A2 → 12:00(終了時刻) ←この時刻を求める。
- ベストアンサー
- オフィス系ソフト
- awkで¥をエスケープする方法
awkで以下のように文字列置換したいのですが、変数strA内で¥マークを使用すると正常に置換してくれません。どのようにエスケープすれば良いのでしょうか? ================================================= --実行コマンド---------- gawk -f CNV.awk input.txt --input.txt---------------- いぬ¥ねこ --CNV.awk---------------- strA="ぬ¥ね"; strB="★"; gsub(strA, strB, $0); print $0; ================================================= このとき、「い★こ」という結果を期待しているのですが出力がありません。 また、 strA="ぬ¥¥ね"; や strA='ぬ¥ね'; と指定しても同様にダメでした。 どなたか解決策をご存知でしたらご教授宜しくお願い致します。
- ベストアンサー
- Ruby
- インクの入れ方がわからない!開けるとオレンジの受け皿が邪魔で困っています。どうすれば入れるのでしょうか
- パソコンのOSはWindows10で、有線LANで接続しています。関連するソフト・アプリはありません。電話回線の種類はjcomです。
- ブラザー製品のインクの入れ方について相談です。開けるとオレンジの受け皿が邪魔で入れられません。パソコンのOSはWindows10で、有線LANで接続しています。関連するソフト・アプリはありません。電話回線の種類はjcomです。
お礼
ありがとうございました。大変助かりました。 すこし、タイトルとそれるのですが、 $ gawk -F, -f exam.awk data.txt 92 101.7 60 55.2 計算後の、出力された結果をまとめて合計することってできますでしょうか。