![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?e8efa67)
シェルを使用して特定のキーワードが出たログの"時間のみ"を抽出して画面に表示させようとしているのですが、方法が見つかりません。
grepを使ってキーワードが含まれた行は出せるのですが、grepした行からさらに時間のみを抜き出すにはどうすればいいでしょうか?
[2006/01/01 17:00:00] ID:×××× ○○作業開始
[2006/01/01 17:50:12] ID:×××× ○○作業終了
[2006/01/01 19:20:00] ID:×××× ○○logout
[2006/01/01 20:00:00] ID:×××× ○○login
[2006/01/01 20:30:00] ID:×××× ○○作業中断
例として上記のようなログから特定のIDの行を抜き出し、さらに抜き出した行から時間のみを画面に表示させたいです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
シェルだけでは、いつかは限界がきます。
私はPerlをお勧めします。
以下は、このWindowsのPCで今行いましたが、
Unix/Linux/Macでも、同じようなものです。
C:\>type test1.log
[2006/01/01 17:00:00] ID:a001 ○○作業開始
[2006/01/01 17:50:12] ID:a002 ○○作業終了
[2006/01/01 19:20:00] ID:b001 ○○logout
[2006/01/01 20:00:00] ID:b002 ○○login
[2006/01/01 20:30:00] ID:a003 ○○作業中断
C:\>perl -ne "print \"$1\n\" if /^(\[.+\]).+ID:a00/" test1.log
[2006/01/01 17:00:00]
[2006/01/01 17:50:12]
[2006/01/01 20:30:00]
C:\>
No.2
- 回答日時:
継続的に行う業務なら#1さんのとうりにPerlやシェル・スクリプのようなバッチに作成すると効率がいいですが、1回限りなら・・・頭の体操と思ってパイプで直列処理させるのが簡単です。
Ex
# cat (元ファイル) | sort | grep "2006/01/01" | grep "logout" ..... > (結果保存ファイル)
上記のように順番に grep すれば目的の結果が得られると思います。 キー・ポイントは sort ですね ^ ^
欲しい結果が得られるように事前に sort すると意外と簡単になりますよ・・・『ご利用は計画的に』(笑)
必要なら中間に sort を入れたり、 sort のオプションを使ったしても良いですが、余り複雑になるなら・・・バッチを作成する方がいいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Yahoo!メール YahooIDをパスワード形式にしただけなのに、利用規約違反とされて電話番号が使えなくなりました 1 2023/03/15 20:44
- Yahoo!メール YahooIDをパスワード形式にしただけなのに、利用規約違反とされて電話番号が使えなくなりました 3 2023/03/25 04:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
BシェルとBashの違い
-
『存在するかどうか分からない...
-
Cシェルでのファイルからの入...
-
シェルスクリプトで #!/bin/sh ...
-
HPのマシンでTABキーと矢...
-
.cshrc ファイルについて
-
シェルとシェルの間で環境変数...
-
Cシェル内でBシェルの様な関数...
-
mac os x10.6.4のターミナルでp...
-
Linux仮想コンソール?
-
ubuntuの端末の左にカレントデ...
-
Dirコマンドでフォルダ内ファイ...
-
父子家庭、 子供の進学費用を全...
-
エクセルの表にヘンな枠が・・・
-
SONYの音楽ソフト「x-アプリ」...
-
至急です、Ubuntuに詳しい方助...
-
Linux(Fedora)で外付けHDDが...
-
TOPコマンドで表示するCPU使用...
-
ファイル名についている「-」と...
-
batである文字列内に特定の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cシェル内でBシェルの様な関数...
-
ubuntuの端末の左にカレントデ...
-
シェルスクリプトで #!/bin/sh ...
-
バックスラッシュの意味がわか...
-
.cshrc ファイルについて
-
ターミナルが全く入力できない
-
export と set は違うの?
-
シェル 会話形式でエンターキ...
-
シェルスクリプトに関する問題...
-
BシェルとBashの違い
-
mac os x10.6.4のターミナルでp...
-
posixでshellを起動したとき`da...
-
『存在するかどうか分からない...
-
シェルスクリプトのbashとperl...
-
シェル(ksh)で変数にある文字列...
-
tcshなのにスクリプト構文中のs...
-
コンソールでの上下左右矢印ボ...
-
BシェルとCシェル
-
ps -aのセッションリーダとは
-
Cシェル内で自動ログアウトさせ...
おすすめ情報