編集部からのお知らせ
RPA導入、もう1つのポイント
「ニューノーマルとIT」新着記事一覧

/var/adm/messagesから当日分のみのログを抽出する方法

OKWave

2007-09-18 13:00

/var/adm/messagesから当日分のみのログを抽出する方法

/var/adm/messagesから当日分のみのログを抽出しようとしています。

そこで、下記のように日付をCシェルの中で取得して、 ログをgrepする際の引数にしようとしています。


 $ date | cut -c 5-10
 Sep  3 (空白2文字)

例えば、


 $ set today=`date | cut -c 5-10`

とすると、


 $ echo $today
 Sep 3 (空白1文字)

となり、 Sepと3の間の空白が1文字分削られてしまい、 grepの引数としては設定したいものとは異なります。

また、grepの引数に空白を含む文字列を与えると、引数が2つと判断され、 これまた引数としては不適格です。

そこで、date | cut -c 5-10 の結果をアポストロフィーで囲み 'Sep  3' の状態でgrepの引数にしたいと思っていますが、 アポストロフィー付きで変数をうまくセットできません。


 $ grep $today /var/adm/messages ($todayの中身は'Sep  3')
上記のようなシェルを実現する方法を教えてください。

または、/var/adm/messagesから当日分のみのログを抽出する方法を 教えてください。

よろしくお願いします。

良回答

変数のインデックスと正規表現をあわせれば比較的簡潔に記せますが、以下の感じではダメでしょうか (* Solaris 環境がないので Linux の /var/log/messages をもとにしてます。/var/adm/messsages と日付部のフォーマットが違っていたらすみません)。


set today=`date`
grep "$today[2]スペース2個分*$today[3]" /var/adm/messages

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    セキュアなテレワークでビジネスを継続する「緊急時対応チェックリスト」

  2. クラウドコンピューティング

    ゼロトラストネットワークアクセス(ZTNA)を今すぐ採用すべき理由

  3. ビジネスアプリケーション

    今からでも遅くない、在宅勤務への本格移行を可能にする環境整備のポイント

  4. クラウド基盤

    アプリ開発者とIT管理者、両者のニーズを両立させるプラットフォームとは?

  5. ビジネスアプリケーション

    テレワークに立ちはだかる「紙・ハンコ」の壁を経費精算のペーパーレス化からはじめて乗り越える

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]