С sqlplus
вы должны использовать другой подход к переменным оболочки. Ваша команда должна стать:
/app/oracle/product/10.2.0/bin/sqlplus -s user_name/passwd @effective_date.sql "$Last_Month" "$first_date" "$last_date"
и ваш скрипт sql должен быть:
set heading off
set feedback off
set verify off
set pagesize 50000
set trimspool on
set wrap off
set newpage none
set linesize 2000
spool /home/dir/file_'&1';
select * from table_1
where effective_date between to_date('&2','dd-mm-yyyy') and to_date('&3','dd-mm-yyyy');
spool off;
exit;
если ваш grep поддерживает расширение PCRE, вы можете использовать:
grep -iP '(?s)(?=.*HZ_CUST_SITE_USES_ALL)(?=.*territory_id)' infile