A complex sed statement


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting A complex sed statement
# 8  
Old 03-17-2011
Pravin,

what does (first==1){print $9;first=0;next} and i<=NF(for(i=1;i<=NF;i++)) means ??

---------- Post updated at 03:36 PM ---------- Previous update was at 03:29 PM ----------

Pravin,,

what does if(first==1){print $9;first=0;next} for(i=1;i<=NF;i++) do...please if you can help me thru this...
# 9  
Old 03-17-2011
I have tried my best to explain .

Code:
first

is a variable name. here i am using as flag.
Code:
NF

- No. of fields in a record.


Code:
{if(first==1){print $9;first=0;next}

#variable first is not having value initially so if condition will not satisfiled
Code:
for(i=1;i<=NF;i++){

#this is for loop which will go throgh record field by field.
Code:
if ($i~/\$AB_COMPONENTS/) {

#if any filed is match with pattern $AB_COMPONENTS then
Code:
split($i,a,"/");

#split that filed (in your case $AB_COMPONENTS/Sort/Sort.mpc) with delimiter as "/" and fill the array 'a'
Code:
print substr(a[3],1,(index(a[3],"."))-1)

here i am taking third element from array 'a'(i.e. Sort.mpc) and extracting string before . using index and substr.
Code:
first=1;

assigning 1 to variable first. because we found the pattern and perform operation as requested.

Now while reading your second line.

Code:
{if(first==1){print $9;first=0;next}

. Variable first is 1. if condition is satisfied and we can take field number 9 from second line and make first varibale zero.
This User Gave Thanks to pravin27 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Complex Filter using grep, awk or sed

Hi, I'm not very familiar witrh sed or awk and hope the somebody can help me to solve my problem. I need to filter a text report using grep, sed or awk. I would like to cut out text lines with the pattern INFO and if exists the following lines of the pattern DETAILS. I need te keep the lines with... (4 Replies)
Discussion started by: Frankg
4 Replies

2. Shell Programming and Scripting

Convert Update statement into Insert statement in UNIX using awk, sed....

Hi folks, I have a scenario to convert the update statements into insert statements using shell script (awk, sed...) or in database using regex. I have a bunch of update statements with all columns in a file which I need to convert into insert statements. UPDATE TABLE_A SET COL1=1 WHERE... (0 Replies)
Discussion started by: dev123
0 Replies

3. Shell Programming and Scripting

complex if statement syntax without using 'if ..' keyword in ksh.

It saves me lot of typing and space/lines when I do not use full 'if' keyword and construct, instead use .. && <statement> || <statement> that perfectly replaces.. if ; then <statement> else <statement> fi Can I use following syntax when I want to add multiple statements under 'if'... (4 Replies)
Discussion started by: kchinnam
4 Replies

4. UNIX for Dummies Questions & Answers

Complex If statement

can anyone please explain my below statement, i am confused. if || \ || \ || \ || then (1 Reply)
Discussion started by: kd09714
1 Replies

5. Shell Programming and Scripting

sed: How to modify files in a complex way

Hello, I am new to sed and hope that someone can help me with the following task. I need to modify a txt file which has format like this: xy=CreateDB|head.queue|head.source|head.definition|rtf.edit|rtf.task|rft.cut abc|source|divine|line4|5|true into something like: head.queue=abc... (19 Replies)
Discussion started by: pinkypunky
19 Replies

6. Shell Programming and Scripting

perl : semi complex if statement question

Hi there I am trying to write an if statement in perl that will return "SUCCESS" if either of these conditions are true a) if $changes is greater than 5 AND the $force flag is set to 1 OR b) if $changes is greater than 0 AND $changes is less than 6 #!/usr/bin/perl -w my $force =... (5 Replies)
Discussion started by: rethink
5 Replies

7. Shell Programming and Scripting

SED complex string replacement

sed -i 's:"ps -ef | grep $(cat $PID_FILE) | grep -v grep":"ps -C java -o pid,cmd | grep ${SERVER_NAME} | cut -d' ' -f1 | grep -v grep":g' scriptName That's what I'm attempting to do. I'm attempting to replace this: ps -ef | grep $(cat $PID_FILE) | grep -v grep with this: ps -C java -o... (5 Replies)
Discussion started by: cbo0485
5 Replies

8. Shell Programming and Scripting

Double Spacing complex sed pipeline

my script: FILE="$1" echo "You Entered $FILE" if ; then tmp=$(cat $FILE | sed '/./!d' | sed -n '/regex/,/regex/{/regex/d;p}'| sed -n '/---/,+2!p' | sed -n '/#/!p' | sed 's/^*//' | sed -e\ s/*:// | sed -n '/==> /!p' | sed -n '/--> /!p' | sed -n '/regex/,+1!p' | sed -n '/======/!p' | sed -n... (1 Reply)
Discussion started by: omgsomuchppl
1 Replies

9. Shell Programming and Scripting

Complex sed replacement

Hi, I have a file that I would like to translate using sed. I can do some basic sed commands, but Im afraid this level is beyond me. I have this file - ...alter... .. ...65536... ... ...65536... ... ...alter... ... ...65536... etc What I would like to do is replace the first... (11 Replies)
Discussion started by: one_ring99
11 Replies

10. Shell Programming and Scripting

Complex Sed/Awk Question?

Hello, So i have this file called /apps/turnout which looks like that of the contents of the /etc/shadow (but not exactly) the file has a long list in it. basically, the contents of this file looks something similar to the following: jajajajalala:D#$#AFVAdfda lalabavisof:#%R@fafla#$... (3 Replies)
Discussion started by: SkySmart
3 Replies
Login or Register to Ask a Question