10-16-2008
sed does not work through shell script
hi gurus,
I am trying to use sed to get certain line after a requested line.
the sed works if i run manually but if i put it through shell it does not work.
Any help will be greatly appreciated.
$ cat bt.ksh
ttt=`sed -n '/LAST_UPDATED_DATE/,$p' extractedmessage.out|head -2|tail -1`
cat testing.cfg|while read extractdata
do
whattext=`echo $extractdata|awk -F"||" {'print $1'}`
howmanylines=`echo $extractdata|awk -F"||" {'print $2'}`
echo $whattext $howmanylines
sed -n '/${whattext}/,$p' extractedmessage.out|head -${howmanylines}|tail -1 >bt.out
echo $tttt
done
< ibmrxcpi-rptdb1 : nwp1 : oracle : /users/oracle/arao >
$ cat testing.cfg
LAST_UPDATED_DATE||2
LAST_UPDATED_BY||2
< ibmrxcpi-rptdb1 : nwp1 : oracle : /users/oracle/arao >
$ cat extractedmessage.out
object: RXP_PATIENT
is tag null: Y
command_type: UPDATE
old(1): PATIENT_ID
3380910
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
< ibmrxcpi-rptdb1 : nwp1 : oracle : /users/oracle/arao >
$ ksh -x bt.ksh
+ + sed -n /LAST_UPDATED_DATE/,$p extractedmessage.out
+ head -2
+ tail -1
ttt=06-APR-08
+ 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 LAST_UPDATED_DATE 2
LAST_UPDATED_DATE 2
+ sed -n /${whattext}/,$p extractedmessage.out
+ head -2
+ tail -1
+ 1> bt.out
+ echo
+ read extractdata
+ + echo LAST_UPDATED_BY||2
+ awk -F|| {print $1}
whattext=LAST_UPDATED_BY
+ + echo LAST_UPDATED_BY||2
+ awk -F|| {print $2}
howmanylines=2
+ echo LAST_UPDATED_BY 2
LAST_UPDATED_BY 2
+ sed -n /${whattext}/,$p extractedmessage.out
+ head -2
+ tail -1
+ 1> bt.out
+ echo
+ read extractdata
< ibmrxcpi-rptdb1 : nwp1 : oracle : /users/oracle/arao >
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
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
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
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
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
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
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
.......
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
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
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
ECHO(3) 1 ECHO(3)
echo - Output one or more strings
SYNOPSIS
void echo (string $arg1, [string $...])
DESCRIPTION
Outputs all parameters.
echo is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo (unlike some other
language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want
to pass more than one parameter to echo, the parameters must not be enclosed within parentheses.
echo also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. Prior to PHP 5.4.0, this short syn-
tax only works with the short_open_tag configuration setting enabled.
I have <?=$foo?> foo.
PARAMETERS
o $arg1
- The parameter to output.
o $...
-
RETURN VALUES
No value is returned.
EXAMPLES
Example #1
echo examples
<?php
echo "Hello World";
echo "This spans
multiple lines. The newlines will be
output as well";
echo "This spans
multiple lines. The newlines will be
output as well.";
echo "Escaping characters is done "Like this".";
// You can use variables inside of an echo statement
$foo = "foobar";
$bar = "barbaz";
echo "foo is $foo"; // foo is foobar
// You can also use arrays
$baz = array("value" => "foo");
echo "this is {$baz['value']} !"; // this is foo !
// Using single quotes will print the variable name, not the value
echo 'foo is $foo'; // foo is $foo
// If you are not using any other characters, you can just echo variables
echo $foo; // foobar
echo $foo,$bar; // foobarbarbaz
// Some people prefer passing multiple parameters to echo over concatenation.
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "
";
echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END;
// Because echo does not behave like a function, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';
// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
// it behaves like a function, so
// it may be used in this context.
echo $some_var ? 'true': 'false'; // changing the statement around
?>
NOTES
Note
Because this is a language construct and not a function, it cannot be called using variable functions.
SEE ALSO
print(3), printf(3), flush(3), Heredoc syntax.
PHP Documentation Group ECHO(3)