How to grep the grant statement and output to the different files?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to grep the grant statement and output to the different files?
# 1  
Old 02-24-2013
How to grep the grant statement and output to the different files?

Hi

currently I have a list of *.sql files.

one of the file, terminal is

Code:
Prompt Table TERMINAL;
CREATE TABLE TERMINAL
(
  TERMINAL_ID           NUMBER(8),
  EXCEL_TERMINAL_ID       NUMBER(8),
  MERCHANT_ID           NUMBER(8),
  SETTLE_TIME           VARCHAR2(4 CHAR)
);

COMMENT ON TABLE TERMINAL IS 'This tables stores all the terminal details';

COMMENT ON COLUMN TERMINAL.TERMINAL_ID IS 'EXCEL internal unique terminal Identifier. PK for Terminal table';

COMMENT ON COLUMN TERMINAL.EXCEL_TERMINAL_ID IS 'This is ID within a merchant. This number is re-initialized for each merchant';

COMMENT ON COLUMN TERMINAL.MERCHANT_ID IS 'Merchant identifier (References Merchant.merchant_id)';

COMMENT ON COLUMN TERMINAL.SETTLE_TIME IS 'Settlement time of terminal';

Prompt Privs on TABLE TERMINAL TO BONUS_USER to BONUS_PORTAL;
GRANT ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE, ON COMMIT REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON TERMINAL TO BONUS_USER;

Prompt Privs on TABLE TERMINAL TO EXCEL_TXN to EXCEL_TXN;
GRANT ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE ON TERMINAL TO EXCEL_TXN WITH GRANT OPTION;

My output will be to 2 files for one 1 file, terminal.sql
output file 1, terminal_to_bonus_user,sql
Code:
Prompt Privs on TABLE TERMINAL TO BONUS_USER to BONUS_PORTAL;
GRANT  ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE, ON COMMIT  REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON TERMINAL TO BONUS_USER;

My output file 2, terminal_to_excel_txn.sql

Code:
Prompt Privs on TABLE TERMINAL TO EXCEL_TXN to EXCEL_TXN;
GRANT ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE ON TERMINAL TO EXCEL_TXN WITH GRANT OPTION;

My ksh code, grep_grant_tables.sh is as follow:

Code:
#!/bin/ksh

for i in *.sql
do
        if [ -Z `grep EXCEL_TXN "$i"` ]
        grep XLS_TXN "$i" > "${i%.*}_to_excel_txn.sql"
        fi
        grep BONUS_PORTAL "$i" > "${i%.*}_to_bonus_user.sql"
done

exit

when I run my code


Code:
grep_grant_tables.sh: syntax error at line 7: `fi' unexpected

May I know how to resolve the above?

thanks a lot!
# 2  
Old 02-24-2013
Your 'if' statement should be:
Code:
if [[ -z `grep EXCEL_TXN "$i"` ]] then

# 3  
Old 02-24-2013
Or may be this is what you want:
Code:
grep -E '(EXCEL|XLS)_TXN' "$i" > "${i%.*}_to_excel_txn.sql"

or use egrep:
Code:
egrep '(EXCEL|XLS)_TXN' "$i" > "${i%.*}_to_excel_txn.sql"

One of the these should replace:
Code:
        if [ -Z `grep EXCEL_TXN "$i"` ]
        grep XLS_TXN "$i" > "${i%.*}_to_excel_txn.sql"
        fi

# 4  
Old 02-25-2013
I need to change my original code as it will give some negative results
here's my current code
Code:
for i in *.sql
do
        if [[ `grep EXCEL_TXN "$i"` ]]
        then
        grep EXCEL_TXN "$i" > "${i%.*}_to_excel_txn.sql"
        fi
        if [[ `grep BONUS_USER "$i"` ]]
        then
        grep BONUS_USER "$i" > "${i%.*}_to_bonus_user.sql"
        fi
done

exit

I need to be more specific to zoom in only the grant ....to EXCEL_TXN line or

grant...to BONUS_USER line


how do I do it?

from HowTo: Use grep Command In Linux / UNIX [ Examples ]

Code:
$ egrep -w 'word1|word2' /path/to/file

Code:
$ egrep -w 'GRANT|EXCEL_TXN' /path/to/file

since it will also grep the additional GRANT TO BONUS_USER.

any assistance is greatly appreciated!

thanks!
# 5  
Old 02-25-2013
What about your recent thread? The answers in there might be easily adaptable to your actual problem...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep two files: -F flag gives weird output

Hi Members, I'm confused with grep -F option. Goal is to get all the lines from file2 that have exact gene name from gene list (file one). File one has list of genes: File two has lot more information pertinent to genes in file one: I use three following commands: 1) grep -wf gene... (9 Replies)
Discussion started by: genome
9 Replies

2. Shell Programming and Scripting

How can i prepare grant staement with 2 files ?

---file1 ( tables A B C D E F ... ... Z ---file2 Joe Bob Mary Sally Fred Elmer David (1 Reply)
Discussion started by: rocking77
1 Replies

3. Shell Programming and Scripting

Grep strings on multiple files and output to multiple files

Hi All, I want to use egrep on multiple files and the results should be output to multiple files. I am using the below code in my shell script(working in Ksh shell). However with this code I am not attaining the desired results. #!/bin/ksh ( a="/path/file1" b="path/file2" for file in... (4 Replies)
Discussion started by: am24
4 Replies

4. Solaris

Grant unprivileged user rights to see the output of echo|format but not modify disks

anyone have any idea how do to this with auth_attr? I suspect if I grant him solaris.device.:RO::Device Allocation::help=DevAllocHeader.html that will work but I'm unsure. Just looking for a second opinion. (10 Replies)
Discussion started by: os2mac
10 Replies

5. Post Here to Contact Site Administrators and Moderators

Redirecting grep output to multiple files

Hi All, I am trying to redirect the grep output to multiple files, can you please help with that. Below is the command im using to match my pattern grep \<proxyType\>$PxyType $DIR/EndureFiles.json > File_Name*.json Note : $DIR and $PxyType is already defined in my script Im able... (0 Replies)
Discussion started by: Deena1984
0 Replies

6. Shell Programming and Scripting

Using GREP in IF Statement

Hello All, I have 2 different pieces of code, I am confused why the Code1 is giving me the correct result where as the Code2 is not giving me correct result. It gives me always result as "Failure" irrespective of the "ERROR" word exists in logfile or not. may I know the reason why? I am using Bash... (17 Replies)
Discussion started by: Ariean
17 Replies

7. Shell Programming and Scripting

Grep multiple terms and output to individual files

Hi all, I'll like to search a list of tems in a huge file and then output each of the terms to individual files. I know I can use grep -f list main.file to search them but how can I split the output into individual files? Thank you. (6 Replies)
Discussion started by: ivpz
6 Replies

8. Shell Programming and Scripting

Grep statement

Hi All, Please can somebody advise that if I want to search a pattern xyz the grep command should only select xyz and not any other pattern containing xyz (ex abxyzcd) Regards (1 Reply)
Discussion started by: Shazin
1 Replies

9. Shell Programming and Scripting

grep'ing for specific directories, and using the output to move files

Hello, this is probably another really simple tasks for most of you gurus, however I am trying to make a script which takes an input, greps a specific file for that input, prints back to screen the results (which are directory names) and then be able to use the directory names to move files.... (1 Reply)
Discussion started by: JayC89
1 Replies

10. Shell Programming and Scripting

Using grep in if statement

Can somebody please guide me towards right syntax: #!/bin/ksh if i = $(grep $NAME filename) echo "Name Found" else echo " Name not Found" fi I need to grep for $NAME in the file, and if it returns false, execute a series of commands and if true, exit out. The above is not the right... (3 Replies)
Discussion started by: chiru_h
3 Replies
Login or Register to Ask a Question