我有一个.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”文档中,但被放入名为 的 shell 变量中DATE
。我对关闭所有sqlplus
设置有一个迷信,你的里程可能会有所不同。