Dualからgrepにsysdate-1を渡す方法

Dualからgrepにsysdate-1を渡す方法

日曜日から土曜日までの週のログを含む.logがあります。今日のスクリプトを実行したら、昨日検索する必要があります。

私が何をしているのか

Date = `print " set heading off
  set feedback off
  set pagesize 0
  select to_char(sysdate-1, 'DD Mon')" | Sqlplus`
print "Date = $Date"

grep .Ccd /var/tmp/logs/poll.log | grep "$date"

しかし、sysdate-1を取得できません。

答え1

特に、次のようにパイプできるかどうかはわかりませんsqlplus

#!/bin/bash

USER=oracle
PASSWORD=adminadmin
INSTANCE=tiger1p

DATE=$(sqlplus -s /nolog << END_SQL
connect $USER/$PASSWORD@$INSTANCE
set feedback off
set echo off
set verify off
set head off
set pagesize 0
select to_char(sysdate-1, 'DD Mon') from dual;
END_SQL
)
grep Ccd /var/tmp/logs/poll.log | grep "$DATE"

「sysdate - 1」をインポートするSQLは「here」ドキュメントにありますが、という名前のシェル変数に保存されますDATE。すべての設定をオフにする迷信がありますsqlplus。マイルが異なる場合があります。

関連情報