Help me pls : splitting single file in unix into different files based on data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help me pls : splitting single file in unix into different files based on data
# 15  
Old 10-07-2012
Is this want you want..?

Code:
awk -F "\\" '{if($0~/Layout\|\$\[\[recor/){s=$0;}
else if($0~/Ab Initio 1438\\/){split($11,a,".");x++;fn=a[1]x;{print s > fn ;s=""}}
else if(s){s=s"\n"$0}
else{if(fn){print > fn}}}' file

This User Gave Thanks to pamu For This Post:
# 16  
Old 10-07-2012
I have many such files where there are different partitions(not only four). So can u please suggest me code for n number of partitions.
Thanks in advance
# 17  
Old 10-07-2012
Quote:
Originally Posted by Ravindra Swan
I have many such files where there are different partitions(not only four). So can u please suggest me code for n number of partitions.
Thanks in advance
Just find one common line to get the partitions.. And if your common pattern is same it will work for all the patterns..
like Ab Initio 1438 is common for all the partitions.. just find that pattern and partition position..
Code:
{30001002|XXparameter|!prototype_path|E:\\program files\\Ab Initio 1438\\Components\\Datasets\\Input_File.mdc|3|2

Hope this helps you..Smilie
This User Gave Thanks to pamu For This Post:
# 18  
Old 10-08-2012
Bug Another issue regarding name of the file

Code:

Code:
{30001002|XXparameter|!prototype_path|C:\\Program Files\\Ab Initio\\Ab Initio GDE\\Components\\Transform\\Join.mpc|3|2|Pw$|@{0|}}
{30001002|XXparameter|!prototype_path|E:\\program files\\Ab Initio 1438\\Components\\Datasets\\Input_File.mdc|3|2|Pw$|@{0|}}
{30001002|XXparameter|!prototype_path|E:\\program files\\Ab Initio 1438\\Components\\Datasets\\Input_File.mdc|3|2|Pw$|@{0|}}
{30001002|XXparameter|!prototype_path|E:\\program files\\Ab Initio 1438\\Components\\Transform\\Join.mpc|3|2|Pw$|@{0|}}

Sorry yaar , again another issue cam einto existence. Please observe the above code
The Line highlighted in red is a little bit different than others . So the name of the file i got is Transform instead of Join.
can we do any thing such that the name before .mpc|3|2|Pw$|@{0|}}
and after \\ as name of the file. Bcz i found this is working in all the files.
Code:
//Join.mpc|3|2|Pw$|@{0|}}
 

Thanks in advance.

Last edited by Scrutinizer; 10-10-2012 at 03:22 AM.. Reason: Quote is not done properly; code tags (mod)
# 19  
Old 10-08-2012
As per my observation.. see below...
It is C directory

Code:
{30001002|XXparameter|!prototype_path|C:\\Program Files\\Ab Initio\\Ab Initio GDE\\Components\\Transform\\Join.mpc|3|2|Pw$|@{0|}}

try this..

Code:
awk -F "\\" '{if($0~/Layout\|\$\[\[recor/){s=$0;}
else if($0~/E:\\\\Program Files\\\\Ab Initio/){split($11,a,".");x++;fn=a[1]x;{print s > fn ;s=""}}
else if($0~/C:\\\\Program Files\\\\Ab Initio/){split($13,a,".");x++;fn=a[1]x;{print s > fn ;s=""}}
else if(s){s=s"\n"$0}
else{if(fn){print > fn}}}' file

This User Gave Thanks to pamu For This Post:
# 20  
Old 10-08-2012
Cant we get the name like this... after \\ and before .mpc|3|2|Pw$|@{0|}}.
Bcz in further files if i found any other thing again code needs to be changed but this must be strictly same in all cases.

Thanks a lot in advance
# 21  
Old 10-08-2012
I observed above that you have two patterns at the end of the line..

Code:
{30001002|XXparameter|!prototype_path|C:\\Program Files\\Ab Initio\\Ab Initio GDE\\Components\\Transform\\Join.mpc|3|2|Pw$|@{0|}}
{30001002|XXparameter|!prototype_path|E:\\program files\\Ab Initio 1438\\Components\\Datasets\\Input_File.mdc|3|2|Pw$|@{0|}}

And assuming Program Files\\Ab Initio is same pattern for the all file names..

try this..

Code:
awk -F "\.mdc|\.mpc" '{if($0~/Layout\|\$\[\[recor/){s=$0;}
else if($0~/Program Files\\\\Ab Initio/){n=split($1,a,"\\");x++;fn=a[n]x;{print s > fn ;s=""}}
else if(s){s=s"\n"$0}
else{if(fn){print > fn}}}' file

This User Gave Thanks to pamu 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

In PErl script: need to read the data one file and generate multiple files based on the data

We have the data looks like below in a log file. I want to generat files based on the string between two hash(#) symbol like below Source: #ext1#test1.tale2 drop #ext1#test11.tale21 drop #ext1#test123.tale21 drop #ext2#test1.tale21 drop #ext2#test12.tale21 drop #ext3#test11.tale21 drop... (5 Replies)
Discussion started by: Sanjeev G
5 Replies

2. Shell Programming and Scripting

Split a single file into multiple files based on a value.

Hi All, I have the sales_data.csv file in the directory as below. SDDCCR; SOM ; MD6546474777 ;05-JAN-16 ABC ; KIRAN ; CB789 ;04-JAN-16 ABC ; RAMANA; KS566767477747 ;06-JAN-16 ABC ; KAMESH; A33535335 ;04-JAN-16 SDDCCR; DINESH; GD6674474747 ;08-JAN-16... (4 Replies)
Discussion started by: ROCK_PLSQL
4 Replies

3. Shell Programming and Scripting

Splitting a single file to multiple files

Hi Friends , Please guide me with the code to extract multiple files from one file . The File Looks like ( Suppose a file has 2 tables list ,column length may vary ) H..- > File Header.... H....- >Table 1 Header.... D....- > Table 1 Data.... T....- >Table 1 Trailer.... H..-> Table 2... (1 Reply)
Discussion started by: AspiringD
1 Replies

4. UNIX for Dummies Questions & Answers

Extracting data from one file, based on another file (splitting)

Dear All, I have two files but want to extract data from one based on another... can you please help me file 1 David Tom Ellen and file 2 David|0010|testnamez|resultsz David|0004|testnamex|resultsx Tom|0010|testnamez|resultsz Tom|0004|testnamex|resultsx Ellen|0010|testnamez|resultsz... (12 Replies)
Discussion started by: A-V
12 Replies

5. Shell Programming and Scripting

Sed: Splitting A large File into smaller files based on recursive Regular Expression match

I will simplify the explaination a bit, I need to parse through a 87m file - I have a single text file in the form of : <NAME>house........ SOMETEXT SOMETEXT SOMETEXT . . . . </script> MORETEXT MORETEXT . . . (6 Replies)
Discussion started by: sumguy
6 Replies

6. Shell Programming and Scripting

Urgent ...pls Sorting files based on timestamp and picking the latest file

Hi Friends, Newbie to shell scripting. Currently i have used the below to sort data based on filenames and datestamp $ printf '%s\n' *.dat* | sort -t. -k3,4 filename_1.dat.20120430.Z filename_2.dat.20120430.Z filename_3.dat.20120430.Z filename_1.dat.20120501.Z filename_2.dat.20120501.Z... (1 Reply)
Discussion started by: robertbrown624
1 Replies

7. Shell Programming and Scripting

Splitting single file into n files

Hi all, I am new to scripting and I have a requirement we have source file as HEADER 01.10.2010 14:32:37 NAYA TA0022 TA0000 20000001;20060612;99991231;K4;02;3 20000008;20080624;99991231;K4;02;3 20000026;19840724;99991231;KK;01;3 20000027;19840724;99991231;KK;01;3... (6 Replies)
Discussion started by: srk409
6 Replies

8. Shell Programming and Scripting

Data Splitting into two files from one file

I have a file as: I/P File: Ground Car 2009 Lib 2008 Lib 2003 Ground Car 2009 Ground Car 2003 Car 2005 Car 2003 Car 2005 Sita 2900 2006 Car 2007 I have to split the file into two: - one for names and second for years. O/p1 (Names): Ground Car (3 Replies)
Discussion started by: karumudi7
3 Replies

9. Shell Programming and Scripting

Splitting large file into multiple files in unix based on pattern

I need to write a shell script for below scenario My input file has data in format: qwerty0101TWE 12345 01022005 01022005 datainala alanfernanded 26 qwerty0101mXZ 12349 01022005 06022008 datainalb johngalilo 28 qwerty0101TWE 12342 01022005 07022009 datainalc hitalbert 43 qwerty0101CFG 12345... (19 Replies)
Discussion started by: jimmy12
19 Replies

10. Shell Programming and Scripting

splitting files based on text in the file

I need to split a file based on certain context inside the file. Is there a unix command that can do this? I have looked into split and csplit but it does not seem like those would work because I need to split this file based on certain text. The file has multiple records and I need to split this... (1 Reply)
Discussion started by: matrix1067
1 Replies
Login or Register to Ask a Question