Sponsored Content
Full Discussion: SED command help
Top Forums Shell Programming and Scripting SED command help Post 302141945 by bakunin on Tuesday 23rd of October 2007 03:06:13 PM
Old 10-23-2007
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:

Code:
sed -n 's/^Processes completed, \([0-9][0-9]*\) errors found/\1/p' taic.log

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:

Code:
iErrors=$(sed -n 's/^Processes completed, \([0-9][0-9]*\) errors found/\1/p' taic.log)

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? ;-))

Code:
#! /bin/ksh

typeset -i iErrors=$(sed -n 's/^Processes completed, \([0-9][0-9]*\) errors found/\1/p' taic.log)

if     [ $iErrors -eq 0 ] ; then
     # 0 errors found
elseif [ $iErrors -eq 1 ] ; then
     # 1 errors found
else
     # more than 1 errors fould
fi

....

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

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)
Discussion started by: rajan_san
4 Replies

2. Shell Programming and Scripting

Loop with sed command to replace line with sed command in it

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)
Discussion started by: cbo0485
1 Replies

3. UNIX for Dummies Questions & Answers

some help with the sed command please

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)
Discussion started by: OneDreamCloser
3 Replies

4. Shell Programming and Scripting

Convert Sed command to perl command

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)
Discussion started by: abacus
2 Replies

5. UNIX for Dummies Questions & Answers

sed insert command and variable expansion/command substitution

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)
Discussion started by: glev2005
8 Replies

6. UNIX for Advanced & Expert Users

sed command

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)
Discussion started by: ksrivani
24 Replies

7. Shell Programming and Scripting

sed returns error "sed: -e expression #1, char 18: unterminated `s' command"

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)
Discussion started by: anand.shah
8 Replies

8. Shell Programming and Scripting

sed Command

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)
Discussion started by: emilioveras
5 Replies

9. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

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)
Discussion started by: satishmallidi
12 Replies

10. UNIX for Dummies Questions & Answers

Output of sed command to another sed command

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)
Discussion started by: BigCroyd
10 Replies
qrun(8B)								PBS								  qrun(8B)

NAME
qrun - run a pbs batch job SYNOPSIS
qrun [-a] [-H host] job_identifier ... DESCRIPTION
The qrun command is used to force a batch server to initiate the execution of a batch job. The job is run regardless of scheduling posi- tion, resource requirements, or state. In order to execute qrun, the user must have PBS Operation or Manager privilege. OPTIONS
-a Specifies the job(s) is to be run asynchronously. -H host Specifies the host within the cluster on which the job(s) are to be run. The host argument is the name of a host that is a member of the cluster of hosts managed by the server. If the option is not specified, the server will select the "worst possible" host on which to execute the job. OPERANDS
The qrun command accepts one or more job_identifier operands of the form: sequence_number[.server_name][@server] STANDARD ERROR
The qrun command will write a diagnostic message to standard error for each error occurrence. EXIT STATUS
Upon successful processing of all the operands presented to the qrun command, the exit status will be a value of zero. If the qrun command fails to process any operand, the command exits with a value greater than zero. SEE ALSO
pbs_server(8B), pbs_sched(8B), qmgr(1B) Local qrun(8B)
All times are GMT -4. The time now is 03:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy