file splitting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting file splitting
# 1  
Old 08-23-2007
file splitting

I need to split a file into n number of files but with one condition.
Similar field 1 lines should end up in a single file.

Eg:
XYZ|sdfwe|fsd|SDFDW
ABC|sdfdsf|werw|ASD
ZXC|awrwe|wrfwe|WEq
XYZ|werwe|QWEQW|SADQ
SER|asq|SADEW|AS|asa
ABC|asdwq|sdad|SAdf
BCG|dfg|sdfa|fgdsf

if n=2
file1:
XYZ|sdfwe|fsd|SDFDW
XYZ|werwe|QWEQW|SADQ
ZXC|awrwe|wrfwe|WEq

file2
ABC|sdfdsf|werw|ASD
ABC|asdwq|sdad|SAdf
SER|asq|SADEW|AS|asa
BCG|dfg|sdfa|fgdsf
# 2  
Old 08-23-2007
couple of questions:
  1. What is 'Similar field 1'? I don't see any 'similarities' given your sample
  2. how does the value of 'n' influences your selection (if any)?
  3. Where are you exactly getting stuck solving your problem?
# 3  
Old 08-23-2007
my problem is splitting the file exactly into "n" numbers. split command split the files based on either with no of lines or the size given. If the number of lines is odd, i am not able to split it into exactly the n number.

Selection into the split files is not an issue.Only thing is the lines with the same field 1 values (lines are delimited by '|') should end up in a single file.

In my example i showed lines start with 'XYZ' end in the same splitted file.
# 4  
Old 08-23-2007
Quote:
Originally Posted by dhams
file1:
XYZ|sdfwe|fsd|SDFDW
XYZ|werwe|QWEQW|SADQ
ZXC|awrwe|wrfwe|WEq
why is 'ZXC' in the same file with 'XYZ'?
# 5  
Old 08-23-2007
It can be in any one of the splitted file. But the thing is if any other line starts with 'ZXC' presents in main file, both should be end in the same splitted file.
# 6  
Old 08-23-2007
ok, so.... how do you decide what line goes to what file?
E.g. how do you know that 'XYZ' should go to file1 and 'ABC' should go to 'file2'?
Can I have both the 'XYZ' and the 'ABC' lines in the same file? I guess I don't understand the algorithm here.
And for the same: if 'n==3', how do you know what goes where?
# 7  
Old 08-23-2007
There is no matter whether 'XYZ' and 'ABC' end up in the same or different file. Also there is no condition for the lines to go into any specific file.

Only condition is lines starting with the same field should end up in the same splitted file. And the number of splitted file is predefined i.e. 'n'.

But if suppose there are 10 lines in a file all 10 lines starts with 'XYZ' there wont be any splitting. And if suppoes 9 XYZ lins and 1 ABC lines in main file it should be split into two files with all XYZ in one file and ABC in another file. So there will be two splitted file eventhough if split count is more than 2.

so to put in another words the resultant number of split files can be 1 to max of predined 'n'.

I am thinking in moving the lines from the main file into the split files by roundrobin manner. That is first get all unique field 1 values. For each value move the corresponding lines into the split files in a roundrobin manner. But i am not sure whether i am complicating myself?

Hope this explanation is not confusing!!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Splitting the file based on two fields - Fixed length file

Hi , I am having a scenario where I need to split the file based on two field values. The file is a fixed length file. ex: AA0998703000000000000190510095350019500010005101980301 K 0998703000000000000190510095351019500020005101480 ... (4 Replies)
Discussion started by: saj
4 Replies

2. Shell Programming and Scripting

Splitting a text file into smaller files with awk, how to create a different name for each new file

Hello, I have some large text files that look like, putrescine Mrv1583 01041713302D 6 5 0 0 0 0 999 V2000 2.0928 -0.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 5.6650 0.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 3.5217 ... (3 Replies)
Discussion started by: LMHmedchem
3 Replies

3. Shell Programming and Scripting

Execution of loop :Splitting a single file into multiple .dat file

hdr=$(cut -c1 $path$file|head -1)#extract header”H” trl=$(cut -c|path$file|tail -1)#extract trailer “T” SplitFile=$(cut -c 50-250 $path 1$newfile |sed'$/ *$//' head -1')# to trim white space and extract table name If; then # start loop if it is a header While read I #read file Do... (4 Replies)
Discussion started by: SwagatikaP1
4 Replies

4. Shell Programming and Scripting

Splitting XML file on basis of line number into multiple file

Hi All, I have more than half million lines of XML file , wanted to split in four files in a such a way that top 7 lines should be present in each file on top and bottom line of should be present in each file at bottom. from the 8th line actual record starts and each record contains 15 lines... (14 Replies)
Discussion started by: ajju
14 Replies

5. 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

6. Shell Programming and Scripting

Splitting a file in to multiple files and passing each individual file to a command

I have an input file with contents like: MainFile.dat: 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 ... (4 Replies)
Discussion started by: rkrish
4 Replies

7. Shell Programming and Scripting

File splitting, naming file according to internal field

Hi All, I have a rather stange set of requirements that I'm hoping someone here could help me with. We receive a file that is actually a concatenation of 4 files (don't believe this would change, but ideally the solution would handle n files). The super-file looks like:... (7 Replies)
Discussion started by: Leedor
7 Replies

8. Shell Programming and Scripting

splitting the file

Hi , I have one file which has many headers. Say suppose HEDAER ..data DATA DATA ..data ..data HEADER ..data ..data DATA .data HEADER. ..data ..data If there are 3 HEADERS in source file then I need to split the source file into 3 separate file.... (2 Replies)
Discussion started by: tanyaheerani
2 Replies

9. UNIX for Dummies Questions & Answers

Splitting a file based on record sin another file

All, We receive a file with a large no of records (records can vary) and we have to split it into two files based on another file. e.g. File1: UHDR 2008112 "25187","00000022","00",21-APR-1991,"" ,"D",-000000519,+0000000000,"C", ,+000000000,+000000000,000000000,"2","" ,21-APR-1991... (7 Replies)
Discussion started by: er_ashu
7 Replies

10. Shell Programming and Scripting

[Splitting file] Extracting group of segments from one file to others

Hi there, I need to split one huge file into separate files if the condition is fulfilled according to that the position between 97 and 98 matches with “IT” at the segment MAS. There is no delimiter file is fix-width with varous line length. Could you please help me how I do split the file... (1 Reply)
Discussion started by: ozgurgul
1 Replies
Login or Register to Ask a Question