Help with matching pattern inside a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with matching pattern inside a file
# 22  
Old 06-03-2011
Ok let's make it work : go in ksh first!

Code:
ksh

Then retry with nawk or /usr/xpg4/bin/awk (but not simple 'awk')

Code:
nawk -v N="$(( $(grep '>' yourinputfile | wc -l) ))" '{A[NR]=$0}END{for(i=0;++i<=N;){for(j=0;++j<=NR;)if(j%N==i%N) print A[j];print}}' yourinputfile

This User Gave Thanks to ctsgnb For This Post:
# 23  
Old 06-03-2011
It looks like the sample file is working. I will run my big file over the weekend to try to validate the results.

Last edited by Ernst; 06-03-2011 at 07:58 PM..
# 24  
Old 06-05-2011
ctsgnb,

Can you explain to me the structure of your code? I need to understand what the i's and the j's do. How does the system know which line to retrieve and where to place them in the file.

Once again, I appreciate the help.
# 25  
Old 06-06-2011
nawk -v N="$(( $(grep '>' yourinputfile wc -l) ))"count the number of lines having ">" in it and store it in an awk variable called "N"
'{A[NR]=$0}This put every line in the array A whose index is the line number 
END{once the whole file has populated the array 
for(i=0;++i<=NSmiliefor i taking the value from 1 to N (which in fact is the number of block) 
{for(j=0;++j<=NRSmiliescan the array 
if(j%N==i%N)if the line number modulo the number of block is equal to the block number currently scanned modulo the total block number 
print A[j]then print the corresponding element of the array (print the corresponding line) 
;print}}' print the empty line to separate blocks in the output. 
# 26  
Old 06-06-2011
Great! I need to take this one step further:
I have this input file
Quote:
Danki1> Macha
ABC_0_1: (30226542)
ABC_1_1: (30258488)
ABC_2_1: (30285886)
Danki2> Macha
ABC_0_1: (30268440)
ABC_1_1: (39451707)
ABC_2_1: (30229064)
and I want to get this output
Quote:
Danki1> Macha Value
ABC_0_1: 30226542 2374099.824
ABC_1_1: 30258488 4.90031E+15
ABC_2_1: 30285886 0
Danki2> Macha
ABC_0_1: 30268440 2377390.642
ABC_1_1: 39451707 6.38914E+15
ABC_2_1: 30229064 0
The formula to get the value Cloumn is as follows:
Quote:
(((((Value inside the parenthesis) * (constant a=0.75))/(constant b=536454))*(constant c=53))) * (variable s= 40, or 60))
Of course the program needs to scan the file to look for a parenthesis. Everytime, it sees one, put that value into a different column, performs the calculation and prints the output.
I hope you get the idea.
You are appreciated.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Copy pattern inside the file

Hi all, I have files and have a missing record. I need copy the existing record and mark those values up. For example in the below file 11048 is missing. I need to copy 22001 and copy those create the values for 11048. I have 120 set of files and I need to do that on all files. Note the... (8 Replies)
Discussion started by: arunkumar_mca
8 Replies

2. Shell Programming and Scripting

Big pattern file matching within another pattern file in awk or shell

Hi I need to do a patten match between files . I am new to shell scripting and have come up with this so far. It take 50 seconds to process files of 2mb size . I need to tune this code as file size will be around 50mb and need to save time. Main issue is that I need to search the pattern from... (2 Replies)
Discussion started by: nitin_daharwal
2 Replies

3. Shell Programming and Scripting

Take only lastest file matching the pattern

Hi All , I have some fille names in a file which are sorted according to date. for example file1_123.log 23 Jul 0Kb file2_123.log 22 Jul 2Kb file3_123.log 20 Jul 0Kb file1_456.log 24 Jul 2Kb file2_678.log 22 Jul 0Kb file2_678.log 21 Jul 2Kb here 123 is a... (2 Replies)
Discussion started by: LoneRanger
2 Replies

4. Shell Programming and Scripting

Finding the pattern and replacing the pattern inside the file

i have little challenge, help me out.i have a file where i have a value declared and and i have to replace the value when called. for example i have the value for abc and ccc. now i have to substitute the value of value abc and ccc in the place of them. Input File: go to &abc=ddd; if... (16 Replies)
Discussion started by: saaisiva
16 Replies

5. Shell Programming and Scripting

Renumber position 88-94 inside all files matching criteria inside folder

There are 4 files inside one folder matching criteria i.e. File name = ABCJmdmfbsjopXXXXXXX_mm-dd-yyyy_XXX.data Here is the Code which find the files matching criteria:- TS=`date +"%m-%d-%Y"`| for fname in `find . -name "ABCJmdmfbsjop???????_${TS}*.data"` do # Matching File Processing Code.... (1 Reply)
Discussion started by: lancesunny
1 Replies

6. Shell Programming and Scripting

how to find the pattern inside the file and replace it

hello everybody, I have a group of file eg- sample1 sample2 sample3 sample4 each file contain this :- cat sample1 SEQ_NUM,1,UPESI1 My requirement is to change the value-UPESI1 to UPE10 in file which contain this pattern -UPESI1. any help is appreciated. (2 Replies)
Discussion started by: abhigrkist
2 Replies

7. Shell Programming and Scripting

Matching using Regex inside a file

I need scan through some files, then open the file one by one and scan inside the file using perl to see if it contain a start tag and end tag which the end tag is the mirror image of the start tag, the start tag and end tag only have 5 char. And inside the file there is "http://". It is just a... (5 Replies)
Discussion started by: blueblur
5 Replies

8. Programming

File Pattern Matching C++

Hi, I have large files with fixed length fields or fields seperated by delimeter. I would like to do validation on some or all fields to check for numeric or date or characters etc.. I would like to write this in C++. Please let me know if any one have any ideas on this. Thanks for all... (2 Replies)
Discussion started by: rameshmelam
2 Replies

9. Shell Programming and Scripting

Pattern matching for file

Hi All, I'm new to perl, My requirement is to check if particular file exists. e.g. filename.txt, filename1.txt, filename2.txt etc I tried the below code:- my $var1 = "filename.txt" if ( -e ($var1 = ~ /file\w/)) { print "File found \n"; } else { print "File not found \n"; } ... (0 Replies)
Discussion started by: doitnow
0 Replies

10. Shell Programming and Scripting

How to search a pattern inside a zipped file ie (.gz file) with out unzipping it

How to search a pattern inside a zipped file ie (.gz file) with out unzipping it? using grep command.. Bit urgent.. pls..help me (2 Replies)
Discussion started by: senraj01
2 Replies
Login or Register to Ask a Question