Script on pattern matching and print lines and export to excel


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script on pattern matching and print lines and export to excel
# 8  
Old 06-25-2009
Actually input is first thing what i have posted-----
equip 1 RTF
FULL
BCCH
2 0
0
4 0 4 6 9 106 1353
75
255 255 255 255 255 255 255 255
5 5 5 5 5 5 5 5
0
2
0
0
3
3
0
equip 2 RTF
FULL
NON_BCCH
0 1
0
4 0 4 6 9 106 1351
80
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0
0
2
1
0
1
0
equip 2 RTF
FULL
NON_BCCH
0 1
0
4 0 4 6 9 106 1352
80
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0
0
2
1
0
1
0
equip 2 RTF
FULL
NON_BCCH
0 1
0
4 0 4 6 9 106 1351
89
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0
0
2
1
0
1
0

So i have just split my requiremnts instead of directly getting used below line as suggested by you :
Code:
nawk 'c&&c-- {if (c==1||c==0) printf $0 ((c==0)?ORS:OFS);next} /^*RTF$/ {c=6}' myFile

then got output:
Code:
4 0 4 6 9 106 1353 75
4 0 4 6 9 106 1351 80
4 0 4 6 9 106 1352 80
4 0 4 6 9 106 1351 89

So now next task would be to consider this temp output and get the below format:
Code:
4 0 4 6 9 106 1353 75
4 0 4 6 9 106 1351 80 89
4 0 4 6 9 106 1352 80

Hope this clarifies.....

Smilie

Last edited by Yogesh Sawant; 06-29-2009 at 06:07 AM.. Reason: added code tags
# 9  
Old 06-25-2009
Code:
nawk '
   c&&c-- {
       if (c==1||c==0) { 
          if (c!=0) 
             idx=(idx)?idx OFS $0:$0
          else 
            a[idx]=(idx in a)?a[idx] OFS $0:$0
       }
       next
    } 
   /^*RTF$/ {c=6;idx=""} 
  END { 
    for (i in a) 
       print i OFS a[i]
}' myFile

# 10  
Old 06-26-2009
Hey this is coool.. Thanks a lot Smilie....

---------- Post updated at 07:07 PM ---------- Previous update was at 06:21 PM ----------

@vgersh99

------------------------------------------
nawk '
c&&c-- {
if (c==1||c==0) {
if (c!=0)
idx=(idx)?idx OFS $0:$0
else
a[idx]=(idx in a)?a[idx] OFS $0:$0
}
next
}
/^*RTF$/ {c=7;idx=""}
END {
for (i in a)
print i OFS a[i]
}' inputfile


-------------------------------------------------------------------------

Hey The above piece of code is working perfectly fine when want to retrieve on basis of one pattern i.e RTF condering the below input as same before, can you help me with in cases of two or three patterns for example :

Inputfile:
add_cell 4 0 4 6 9 106 1311 2
frequency_type = 1
bsic = 2Ah
wait_indication_parameters = 10
ccch_conf = 0
add_cell 4 0 4 6 9 106 1312 2
frequency_type = 1
bsic = 3Ah
wait_indication_parameters = 10
ccch_conf = 0
equip 1 RTF
FULL
BCCH
0 0
0
4 0 4 6 9 106 1311
69
255 255 255 255 255 255 255 255
equip 1 RTF
FULL
BCCH
1 0
0
4 0 4 6 9 106 1312
77
255 255 255 255 255 255 255 255
equip 1 RTF
FULL
NON_BCCH
0 2
0
4 0 4 6 9 106 1311
82
0 0 0 0 0 0 0 0
chg_hop_params cell_number = 4 0 4 6 9 106 1351
0
1
1
80 82 119
45
chg_hop_params cell_number = 4 0 4 6 9 106 1351
1
1
1
869 873
38

Considering this input, Output can we get it as below:

4 0 4 6 9 106 1311 2Ah 69 82 45 38
4 0 4 6 9 106 1312 3Ah 77

Smilie)))......... The first group of numbers is from Key: *RTF ,2nd Key is BSIC, 3rd Key is same *RTF...

Is this possible...?????
# 11  
Old 06-26-2009
Yes, it's possible - give it a shot.
# 12  
Old 06-29-2009
Hey!!.. I have been trying but not succeeded... See the requirement: Its like need to print the data which is in same line as searching pattern........... Please help in this regard...
# 13  
Old 06-29-2009
Code:
sed -n '/RTF/ {n;n;h;n;n;n;H;n;H;x;s/\n/ /g;p;}' yourfile

# 14  
Old 06-29-2009
@summer_cherry

actually if you see the requirement its different.. RTF is already met, I also want to include BSIC and add_Cel value.......
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Print lines after matching two pattern

would like to print everything after matching two patterns AAA and BBB. output : CCC ZZZ sample data : AAA BBB CCC ZZZ (4 Replies)
Discussion started by: jhonnyrip
4 Replies

2. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 Replies

3. Shell Programming and Scripting

Want to print out lines with a matching pattern from file

Hi all, I want to search for strings in file1 that can be found in file2 and print out the whole line when matching pattern is found. I have used the below command, but this is not working for me, because it is writing out only the matching patterns from file2, not the whole line. fgrep -o... (2 Replies)
Discussion started by: MonikaB
2 Replies

4. Shell Programming and Scripting

Compare file1 for matching line in file2 and print the difference in matching lines

Hello, I have two files file 1 and file 2 each having result of a query on certain database tables and need to compare for Col1 in file1 with Col3 in file2, compare Col2 with Col4 and output the value of Col1 from File1 which is a) not present in Col3 of File2 b) value of Col2 is different from... (2 Replies)
Discussion started by: RasB15
2 Replies

5. Shell Programming and Scripting

How to print all the lines after pattern matching?

I have a file that contains... Number -------------------- 1 2 3 4 i want to print all the numbers after the hyphen ... (6 Replies)
Discussion started by: ankitknit
6 Replies

6. Shell Programming and Scripting

print range of lines matching pattern and previous line

Hi all, on Solaris 10, I'd like to print a range of lines starting at pattern but also including the very first line before pattern. the following doesn't print the range starting at pattern and going down to the end of file: cat <my file> | sed -n -e '/<pattern>{x;p;}/' I need to include the... (1 Reply)
Discussion started by: siriche
1 Replies

7. Shell Programming and Scripting

perl script print the lines between two pattern

i have a file as below sample.pl parameter1 argument1 argument2 parameter2 I want out as below argument1 argument2 that is , i want to print all the lines between parameter1 & parameter 2. i tried with the following if($mystring =~ m/parameter1(.*?)parameter2/) (2 Replies)
Discussion started by: roopa
2 Replies

8. Shell Programming and Scripting

I want to print next 3 lines after pattern matching.

Dear Experts, I have file called file1 in which i am greping a pattern after that i want to next 3 lines when that pattern is matched. Ex:- file1 USA UK India Africa Hello Asia Europe Australia Hello Peter Robert Jo i want to next 3 lines after matching Hello... (12 Replies)
Discussion started by: naree
12 Replies

9. Shell Programming and Scripting

Perl script to match a pattern and print lines

Hi I have a file (say 'file1')and I want to search for a first occurence of pattern (say 'ERROR') and print ten lines in the file below pattern. I have to code it in PERL and I am using Solaris 5.9. I appreciate any help with code Thanks Ammu (6 Replies)
Discussion started by: ammu
6 Replies

10. Shell Programming and Scripting

Print block of lines matching a pattern

Hi :), I am using the script to search "MYPATTERN" in MYFILE and print that block of lines containing the pattern starting with HEADER upto FOOTER. But my problem is that at some occurrence my footer is different e.g. ";". How to modify the script so that MYPATTERN between HEADER and different... (1 Reply)
Discussion started by: vanand420
1 Replies
Login or Register to Ask a Question