I have a script that executes a batch job within our application and then e-mails the log file. What I'm looking to do is to use the sed command to extract a value from this log file and set it as a variable, and then do further processing.
I've searched and read several things on using sed, but I guess I'm just not understanding how it works.
This is what I've formed so far...
This is what the taic.log looks like:
Batch process TAIC started
Running Processes
Processes completed, 0 errors found
Batch process TAIC completed
So, I'm trying to extract the number of errors found as a variable. Any assistance would be appreciated.
I put the following into a separate script (taic2.sh) to verify that the variable is being set properly:
And I received this as the response:
Any thoughts has to why this isn't returning anything? I've never looked into awk, so I'm not sure of how to check the syntax. thanks!
Using awk for such a purpose is like using H-bombs for chasing blackbirds away.
As i take it from your explanation of the problem you want to find the line containing "Processes completed, XX errors found" where XX could be any number. Then you want to get this value of XX into a variable for further processing.
I suppose here for the sake of simplicity that the file cannot contain more than one line with "Processes completed....". If this would be the case the solution would need a loop to process one value after the other. Pls. check back if this is the case and I'll expand on this. Here we go:
We want to find a line that contains "Processes completed,", then some integer value, followed by " errors found". We want to ignore all the other lines in the file and reduce this line to only the integer value. This is the basis of our regular expression:
The '-n'-option tells sed not to print any lines until explicitly being told so by the "p" option. Now we have phrased our substitute-expression in a way, where only the one line we look for fits in, so this is the only one which will get printed. within the line we define a variable ("\(....\)") and in it we catch every number there might be. We replace the comlete line by only the numbers in this variable ( .../\1/....) and hence print only them to stdout.
The next part is to catch this output into a shell variable. We do this by issuing the sed-command in a subshell:
Now the shell fires up a new shell, executes in this everything between "$(" and ")" and replaces the "$(...)" with the output of that command. This is our integer and after doing this the command really to be executed would be (in case the errors would be 10) "iErrors=10". Now the only task left is to tidy up by declaring all the involved variables. Taken them for granted is *yuck*, y'know? ;-))
Hi All,
I'm relatively new to Unix scripting and am trying to get my head around piping.
I'm trying to take a header record from one file and prepend it to another file. I've done this by creating several temp files but i'm wondering if there is a cleaner way to do this.
I'm thinking... (10 Replies)
Hi,
I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :-
./sample.sh: line... (12 Replies)
Hello,
I'm working with this command which I'm having trouble understanding it:
sed -e '1,$ s/SUB/N/g' < $1 > file.txt
Where SUB stand for an special character with code in ASCII is 0x1A, notepad read it as a right arrow.
Any help will be appreciated. (5 Replies)
Hello All,
I have something like below
LDC100/rel/prod/libinactrl.a
LAA2000/rel/prod/libinactrl.a
I want to remove till first forward slash that is outputshould be as below
rel/prod/libinactrl.a
rel/prod/libinactrl.a
How can I do that ??? (8 Replies)
Hi.....
I'm using sed command for replace the words in a file
cat >test.txt
My test.txt contains
Mary had a little ham
Mary fried a lot of spam
Jack ate a Spam sandwich
Jill had a lamb spamwich
Marry had a spicy wich
$ sed 's/wich$/mirchi/g' test.txt
output is:
Mary had a little ham... (24 Replies)
I know this script is crummy, but I was just messing around.. how do I get sed's insert command to allow variable expansion to show the filename?
#!/bin/bash
filename=`echo $0`
/usr/bin/sed '/#include/ {
i\
the filename is `$filename`
}' $1
exit 0 (8 Replies)
Hello,
Can any perl experts help me convert my sed string to perl. I am unsuccessful with this.
I have to remove this string from html files OAS_AD('Top');
I have come up with this. However the requirement is in perl.
for find in $(find . -type f -name "file1.html") ; do cat $find |... (2 Replies)
hi all,
attached you can find a small txt file ( .txt ),
GIVEN that past_scheduler="islip" and scheduler="mucf"
can somebody please tell me
WHY sed 's/-u '$past_scheduler'/-u '$scheduler'/g' .txt > .txt.temp fails ?
thanx (3 Replies)
Okay, title is kind of confusion, but basically, I have a lot of scripts on a server that I need to replace a ps command, however, the new ps command I'm trying to replace the current one with pipes to sed at one point. So now I am attempting to create another script that replaces that line.
... (1 Reply)
Sorry for the duplicate thread this one is similar to the one in
https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121
Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)