Sponsored Content
Top Forums Shell Programming and Scripting grep string & a few lines after Post 302247895 by arunrao_oradba on Thursday 16th of October 2008 03:02:23 PM
Old 10-16-2008
Hi Gurus
I am trying the same type of command through a shell script but it is not working.

$ cat testing.cfg
owner||1
object||1
command_type||1
CREATED_DATE||2
CREATED_BY||2
LAST_UPDATED_DATE||2
LAST_UPDATED_BY||2

$ cat extractedmessage.out
object: RXP_PATIENT
is tag null: Y
command_type: UPDATE
old(2): CREATED_DATE
20-JAN-99
old(3): CREATED_BY
RXP_DM_P001
old(4): LAST_UPDATED_DATE
06-APR-08
old(5): LAST_UPDATED_BY
RXP_DM_P012

p=$\p
cat testing.cfg|while read extractdata
do
whattext=`echo $extractdata|awk -F"||" {'print $1'}`
howmanylines=`echo $extractdata|awk -F"||" {'print $2'}`
echo "sed -n '/${whattext}/,$p' extractedmessage.out|head -${howmanylines}|tail -1"
`sed -n '/${whattext}/,$p' extractedmessage.out|head -${howmanylines}|tail -1` >isitworking.out 2>&1
outputis1=`date`
echo ${outputis1}
done
done

The above script is not working if i put it in a script
cat testing.ksh
p=$\p
cat testing.cfg|while read extractdata
do
whattext=`echo $extractdata|awk -F"||" {'print $1'}`
howmanylines=`echo $extractdata|awk -F"||" {'print $2'}`
echo "sed -n '/${whattext}/,$p' extractedmessage.out|head -${howmanylines}|tail -1"
output1is=`sed -n '/${whattext}/,$p' extractedmessage.out|head -${howmanylines}|tail -1`
echo ${output1is}
done


$ ksh -x testing.ksh
+ p=$p
+ cat testing.cfg
+ read extractdata
+ + echo LAST_UPDATED_DATE||2
+ awk -F|| {print $1}
whattext=LAST_UPDATED_DATE
+ + echo LAST_UPDATED_DATE||2
+ awk -F|| {print $2}
howmanylines=2
+ echo sed -n '/LAST_UPDATED_DATE/,$p' extractedmessage.out|head -2|tail -1
sed -n '/LAST_UPDATED_DATE/,$p' extractedmessage.out|head -2|tail -1
+ + sed -n /${whattext}/,$p extractedmessage.out
+ head -2
+ tail -1
output1is=
+ echo

but if i cut and paste outout of the sed and run it manuall it works fine
$ sed -n '/LAST_UPDATED_DATE/,$p' extractedmessage.out|head -2|tail -1
06-APR-08


Any help will be greatly appreciated.
Thanks in advance
arun
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

grep string & next n lines

need help on this. let say i hv 1 file contains as below: STRING Description bla bla bla Description yada yada yada Data bla bla Data yada yada how do i want to display n lines after the string? thanks in advance! (8 Replies)
Discussion started by: ashterix
8 Replies

2. Shell Programming and Scripting

Grep string but also it will show the next 5 lines

Hi experts, I want to grep a number 9366109380 from a file but it will also show me the next 5 lines. Below is the example- when i grep 989366109380, i can also see the next 5 lines. Line 1. <fullOperation>MAKE:NUMBER:9366109380:PPAY2;</fullOperation> Line 2.... (10 Replies)
Discussion started by: thepurple
10 Replies

3. Shell Programming and Scripting

Like grep -v for a string over 2 lines? Sed?

Hi, I have a log file that I need to monitor as it's being written to, and I want to exclude certain strings from the output. At the moment I'm using ... tail -f LogFileName_`date +%d`.log | egrep -v "First String To Exclude | 2nd string | 3rd string" ...which works OK - but now I need to... (1 Reply)
Discussion started by: jake657
1 Replies

4. Shell Programming and Scripting

Print lines between two lines after grep for a text string

I have several very large file that are extracts from Oracle tables. These files are formatted in XML type syntax with multiple entries like: <ROW> some information more information </ROW> I want to grep for some words, then print all lines between <ROW> AND </ROW>. Can this be done with AWK?... (7 Replies)
Discussion started by: jbruce
7 Replies

5. Shell Programming and Scripting

Find a string using grep & print the line above or below that.

Hi All, Please tell me how can I Find a string using grep & print the line above or below that in solaris? Please share as I am unable to use grep -A or grep -B as it is not working on Solaris. (10 Replies)
Discussion started by: Zaib
10 Replies

6. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

7. Shell Programming and Scripting

Grep couple of consecutive lines if each lines contains certain string

Hello, I want to extract from a file like : 20120530025502914 | REQUEST | whatever 20120530025502968 | RESPONSE | whatever 20120530025502985 | RESPONSE | whatever 20120530025502996 | REQUEST | whatever 20120530025503013 | REQUEST | whatever 20120530025503045 | RESPONSE | whatever I want... (14 Replies)
Discussion started by: black_fender
14 Replies

8. Shell Programming and Scripting

Grep last two lines, calc & adding comments

....... 06/09/2013|12:00:00 PM|3|26112|40|44032|27419.7|6 1 0 93 |6|1|0|93 06/09/2013|12:30:00 PM|3|26112|40|44032|27491|11 4 0 85 |11|4|0|85 I have "sysperf.out" file containing the lines above. What I like to have on the output is: Node: prod1db ===> this is the hostname Date:... (7 Replies)
Discussion started by: Daniel Gate
7 Replies

9. Shell Programming and Scripting

Grep a string and count following lines starting with another string

I have a large dataset with following structure; C 0001 Carbon D SAR001 methane D SAR002 ethane D SAR003 propane D SAR004 butane D SAR005 pentane C 0002 Hydrogen C 0003 Nitrogen C 0004 Oxygen D SAR011 ozone D SAR012 super oxide C 0005 Sulphur D SAR013... (3 Replies)
Discussion started by: Syeda Sumayya
3 Replies

10. Shell Programming and Scripting

Grep three consecutive lines if each lines contains certain string

say we have : 2914 | REQUEST | whatever 2914 | RESPONSE | whatever 2914 | SUCCESS | whatever 2985 | RESPONSE | whatever 2986 | REQUEST | whatever 2990 | REQUEST | whatever 2985 | RESPONSE | whatever 2996 | REQUEST | whatever 2010 | SUCCESS | whatever 2013 | REQUEST | whatever 2013 |... (7 Replies)
Discussion started by: Saumitra Pandey
7 Replies
GREP(1) 						      General Commands Manual							   GREP(1)

NAME
grep - search a file for a pattern SYNOPSIS
grep [ option ... ] pattern [ file ... ] DESCRIPTION
Grep searches the input files (standard input default) for lines (with newlines excluded) that match the pattern, a regular expression as defined in regexp(6). Normally, each line matching the pattern is `selected', and each selected line is copied to the standard output. The options are -c Print only a count of matching lines. -h Do not print file name tags (headers) with output lines. -i Ignore alphabetic case distinctions. The implementation folds into lower case all letters in the pattern and input before interpre- tation. Matched lines are printed in their original form. -l (ell) Print the names of files with selected lines; don't print the lines. -L Print the names of files with no selected lines; the converse of -l. -n Mark each printed line with its line number counted in its file. -s Produce no output, but return status. -v Reverse: print lines that do not match the pattern. Output lines are tagged by file name when there is more than one input file. (To force this tagging, include /dev/null as a file name argument.) Care should be taken when using the shell metacharacters $*[^|()= and newline in pattern; it is safest to enclose the entire expression in single quotes '...'. SOURCE
/sys/src/cmd/grep.c SEE ALSO
ed(1), awk(1), sed(1), sam(1), regexp(6) DIAGNOSTICS
Exit status is null if any lines are selected, or non-null when no lines are selected or an error occurs. GREP(1)
All times are GMT -4. The time now is 07:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy