Extract patterns and copy them in different files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract patterns and copy them in different files
# 1  
Old 08-25-2011
Extract patterns and copy them in different files

Hi All,

I have a file which looks like this:

Code:
Name1;A01
Name2;A01.047
Name3;A01.047.025
Newname1;B01
NewName2;B01.056.32
NewName3;B04.09.43
NewNewName1;C01.03
NewNewName2;C01.034.44

As you can see, in the file there is some name and followed by the name is some identifier. These identifiers have same identification alphabet (A, B, C until Z) if they belong to the same type.

My task is to extract all the names which belong to the same alphabet and store them in separate files.

For example,
A.dat will look like this:
Code:
Name1;A01
Name2;A01.047
Name3;A01.047.025

B.dat will look like this:
Code:
Newname1;B01
NewName2;B01.056.32
NewName3;B04.09.43

and C.dat
Code:
NewNewName1;C01.03
NewNewName2;C01.034.44

I am using Linux with BASH shell.
# 2  
Old 08-25-2011
Code:
awk -F';' '{ print $0 >> substr($2, 1, 1) }' INPUTFILE

This User Gave Thanks to yazu For This Post:
# 3  
Old 08-25-2011
And this is how I would add the extensions to files:

Code:
for i in `ls PATH`
do
        mv $i $i.dat
done

Thanks for your help and this completes everything. Smilie
# 4  
Old 08-25-2011
Well, sorry, I didn't notice:
Code:
awk -F';' '{ print $0 >> substr($2, 1, 1) ".dat" }' INPUTFILE

This User Gave Thanks to yazu For This Post:
# 5  
Old 08-26-2011
Even better Smilie

---------- Post updated at 11:11 AM ---------- Previous update was at 10:17 AM ----------

I am now trying to find those lines which have ZERO dot and store those lines in A.dat and then the lines which have 1 dot store them in B.dat and two dots store them in C.dat and so on until I reach the final number of dots at maximum they are 11 and less.

This is an illustration:

main_file.txt which looks like this:

Code:
Name1;A01
Name2;A01.047
Name3;A01.047.025
Newname1;B01
NewName2;B01.056.32
NewName3;B04.09.43
NewNewName1;C01.03
NewNewName2;C01.034.44

So, this is what I expect:
A.dat

Code:
Name1;A01
Newname1;B01

B.dat

Code:
Name2;A01.047

C.dat

Code:
Name3;A01.047.025
NewName2;B01.056.32
NewName3;B04.09.43
NewNewName2;C01.034.44

This is what I tried but to no success:

Code:
perl -lne '$c=1 while /./g; END { print $c."dat"; }'

Even the part that gives file names is not perfect.
# 6  
Old 08-26-2011
Code:
nawk 'BEGIN{FS="";count=0}  {for(i=1;i<=length($0);i++) {if(substr($0,i,1)==".") count++;} {print $0 >> count;count=0}}' main_file.txt

This will create a files 0,1,2...etc depends upon the .(dot) which is in the line
This User Gave Thanks to itkamaraj For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Match patterns between two files and extract certain range of strings

Hi, I need help to match patterns from between two different files and extract region of strings. inputfile1.fa >l-WR24-1:1 GCCGGCGTCGCGGTTGCTCGCGCTCTGGGCGCTGGCGGCTGTGGCTCTACCCGGCTCCGG GGCGGAGGGCGACGGCGGGTGGTGAGCGGCCCGGGAGGGGCCGGGCGGTGGGGTCACGTG... (4 Replies)
Discussion started by: bunny_merah19
4 Replies

2. Shell Programming and Scripting

Bash - Find files excluding file patterns and subfolder patterns

Hello. For a given folder, I want to select any files find $PATH1 -f \( -name "*" but omit any files like pattern name ! -iname "*.jpg" ! -iname "*.xsession*" ..... \) and also omit any subfolder like pattern name -type d \( -name "/etc/gconf/gconf.*" -o -name "*cache*" -o -name "*Cache*" -o... (2 Replies)
Discussion started by: jcdole
2 Replies

3. Shell Programming and Scripting

Extract lines between patterns

I have a list in the format below, how do I read through the list and extract the lines between the ##START## and ##END##, so i can check for specific values between each ##START## & ##END## pattern ##START## RANDOMTEXT DFGSD SDFSDF ##END## ##START## morestuff sdfggfg sdfsdf... (10 Replies)
Discussion started by: squrcles
10 Replies

4. Shell Programming and Scripting

Extract all the sentences that matched two patterns

Hi I have two lists of patterns named A and B consisting of around 200 entries in each and I want to extract all the sentences from a big text file which match atleast one pattern from both A and B. For example, pattern list A consists of : ama ani ahum mari ... ... and pattern... (1 Reply)
Discussion started by: my_Perl
1 Replies

5. Shell Programming and Scripting

Extract all the lines in between of 2 patterns and merge them

Hi, I have a file with many lines and need to extract lines between 2 patterns (AAA and BBB) and merge all the in-between lines into single line separated by space. $ cat file1 blah blah blah blah AAA 1 2 3 blah BBB blah blah blah blah blah blah blah blah blah AAA 5 6 blah blah... (4 Replies)
Discussion started by: prvnrk
4 Replies

6. Shell Programming and Scripting

Need to extract text repetitively between two patterns

Hi All, I want to extract the text between some pattern which occurs repeatedly in a file. For example my input is like, /home/..... ..........java:25: cannot find symbol ............ /home/...... /home/....... I want to display... (2 Replies)
Discussion started by: Vignesh58
2 Replies

7. Shell Programming and Scripting

Extract line between two patterns

Hi All, I need a script to extract a lines between two patterns.I have done this using grep,cut,tail and head.But its very slow, because my input file contain more than a lakh. COMMAND:XXXXXXXXXXXXXXXXXXXX yyyyy zzzzzz REQUESTSTRING:aaaaaaaaaaaaaaa;11111 222222 333333... (4 Replies)
Discussion started by: rajamohan
4 Replies

8. UNIX for Dummies Questions & Answers

Search and extract matching patterns

%%%%% (9 Replies)
Discussion started by: lucasvs
9 Replies

9. Shell Programming and Scripting

Extract certain patterns from file.

Hi All, I tried extracting this pattern using grep but it did not work. What I have is a file which has contents like this: file:///channel/add-adhd.html file:///channel/allergies.html file:///channel/arthritis.html http://mail.yahoo.com/ http://messenger.yahoo.com/... (2 Replies)
Discussion started by: shoaibjameel123
2 Replies

10. Shell Programming and Scripting

To extract the string between two patterns

Sample input: Loading File System Networking in nature Closing the System now i need to extract the patterns between the words File and Closing: i.e. sample output: System Networking in Nature Thanks in advance !!!!!!!!!!!!!!!!! (6 Replies)
Discussion started by: aajan
6 Replies
Login or Register to Ask a Question