File Splitter output filename


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File Splitter output filename
# 1  
Old 10-10-2012
File Splitter output filename

Issue: I am able to split source file in multiple files of 10 rows each but unable to get the required outputfile name. please advise.

Details:
input = A.txt having 44 rows

required output = A_001.txt , A_002.txt and so on. Can below awk be modified to give required result

current status = Below command gives me output file names as A_1, A_2

Code:
awk 'NR%"'"10"'"==1{x="'"${SrcFileName}_"'"++i;}{print > x}' $SrcFileName.txt


Last edited by Scrutinizer; 10-10-2012 at 07:50 AM.. Reason: code tags
# 2  
Old 10-10-2012
why you don't just add 00 there..?

Code:
awk 'NR%"'"10"'"==1{x="'"${SrcFileName}_00"'"++i;}{print > x}' $SrcFileName.txt

# 3  
Old 10-10-2012
Hint (or is it not? Smilie):
Code:
awk 'NR%10 == 1{f="x_" sprintf("%03d",++i)}{print > f}' file

This User Gave Thanks to elixir_sinari For This Post:
# 4  
Old 10-10-2012
Thanks elixir.. hint worked. below is my working command.
Code:
awk 'NR%"'"10"'"==1{x="'"${SrcFileName}_"'" sprintf("%03d",++i) ".txt"}{print > x}' $SrcFileName.txt

@pamu: Hardcoded 00 will add extra zeros if the files are spilleted in more than 9 parts.

thanks all for help

Last edited by Franklin52; 10-10-2012 at 08:47 AM.. Reason: Please use code tags for data and code samples
# 5  
Old 10-11-2012
My requirement is extended where the file shud always start with 101 type record. The record count should be less that 10. for any section, 104 type records will not go more than 7

So below command splits the file in records of 10 but is not able to make 101 as first record of splitted file. can someone please extend below command.

Code:
awk 'NR%"'"10"'"==1{x="'"${SrcFileName}_"'" sprintf("%03d",++i) ".txt"}{print > x}' $SrcFileName.txt

Sample source file i.e. A.txt file is
Code:
101|M|28854| 
104|28854| I|
101|M|30854| MER
104|30854| S|
104|30854| C|
104|30854| I|
101|M|30855| SG
104|30855| I|
104|30855| S|
104|30855| C|
104|30855| S|
101|M|30856| 
104|30856| I|
104|30856| S|
104|30856| S|
104|30856| S|
104|30856| C|
104|30856| S|
101|M|30857| 
104|30857| I|
104|30857| S|
104|30857| S|
104|30857| S|
104|30857| C|
104|30857| S|


Last edited by santosh2k2; 10-11-2012 at 12:54 PM.. Reason: code tags, please!
# 6  
Old 10-11-2012
Not clear what is your requirement...

Please give sample input with desired output.

1) If First/next 10 lines have more than 7 "104" then what to do?
2) If second file is not starting with 101 then from where/which record we can get 101?
# 7  
Old 10-11-2012
The output files required in my example is as below. The requirement is
- Records in each file should not be more than 20
- each file should start with 101 record. This ensures that all associated 101 and 104 are in same file. Hence in example below since count including next set of 101 is going beyond 20, first file is cut at 18. rest of records are pushed to next file and so on.

Code:
A_001.txt
101|M|28854| 
104|28854| I|
101|M|30854| MER
104|30854| S|
104|30854| C|
104|30854| I|
101|M|30855| SG
104|30855| I|
104|30855| S|
104|30855| C|
104|30855| S|
101|M|30856| 
104|30856| I|
104|30856| S|
104|30856| S|
104|30856| S|
104|30856| C|
104|30856| S|
 
A_002.txt
101|M|30857| 
104|30857| I|
104|30857| S|
104|30857| S|
104|30857| S|
104|30857| C|
104|30857| S|


Last edited by santosh2k2; 10-12-2012 at 05:22 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Web Development

Filename output in curl

How can I get the name of the default output filename from curl using the argument -O? Using -o one can choose a filename. I want to get the name of the original file, but don't understand how to get it. curl -o filename http://www.website.com curl -O http://www.website.com The... (3 Replies)
Discussion started by: locoroco
3 Replies

2. UNIX for Beginners Questions & Answers

Insert the line number from text file to filename output

Hi everyone :) I have a file "words.txt" containing hundreds of lines of text. Each line contains a slogan. Using the code below i am able to generate an image with the slogan text from each line. The image filename is saved matching the last word on each line. Example: Line 1: We do... (2 Replies)
Discussion started by: martinsmith
2 Replies

3. Shell Programming and Scripting

How to remove filename from output file?

Hello, I am trying to print searched multiple keywords in multiple files. It is almost okay with the code but the code puts filename in front of each line. How may I get rid of it? -grep -A1 'word1' *.txt | grep -A1 'word2' | grep -A1 'word3' I expect: Real outcome: How may I... (3 Replies)
Discussion started by: baris35
3 Replies

4. UNIX for Dummies Questions & Answers

Output a list of five books with their filename titles into one file

Dear unix forum, could I output a list of five books with their file name titles into one file? In order o output all the contents of all the files with their file names there was: find . -type f | while read x; echo -e "\n$x";cat "$x";done > бетховен.txt In spite of them being successively... (5 Replies)
Discussion started by: Xcislav
5 Replies

5. Shell Programming and Scripting

File splitter

I have below script which does splitting based on a different criteria. can it be amended to produce required result SrcFileName=XML_DUMP awk '/<\?xml version="1\.0" encoding="utf-8"\?>/{n++} n{f="'"${SrcFileName}_"'" sprintf("%04d",n) ".txt" print >> f close(f)}' $SrcFileName.txt My... (3 Replies)
Discussion started by: santosh2k2
3 Replies

6. Shell Programming and Scripting

Source xml file splitter

I have a source file that contains multiple XML files concatenated in it. The separator string between files is <?xml version="1.0" encoding="utf-8"?>. I wanted to split files in multiple files with mentioned names. I had used a awk code earlier to spilt files in number of lines i.e. awk... (10 Replies)
Discussion started by: santosh2k2
10 Replies

7. Shell Programming and Scripting

Text Splitter

Hi, I need to split files based on text: BEGIN DSJOB Identifier "LA" DateModified "2011-10-28" TimeModified "11.10.02" BEGIN DSRECORD Identifier "ROOT" BEGIN DSSUBRECORD Owner "APT" Name "RecordJobPerformanceData" Value "0" ... (16 Replies)
Discussion started by: unme
16 Replies

8. Shell Programming and Scripting

use input filename as an argument to name output file

I know this is a simple matter, but I'm new to this. I have a shell script that calls a sed script from within it. I want the output of the shell script to be based on the input file I pass as an argument to the original script. In other words... ./script.sh file.txt (script.sh calls sed... (2 Replies)
Discussion started by: estebandido
2 Replies

9. Shell Programming and Scripting

Filename from splitting files to have the same filename of the original file with counter value

Hi all, I have a list of xml file. I need to split the files to a different files when see the <ko> tag. The list of filename are B20090908.1100-20090908.1200_CDMA=1,NO=2,SITE=3.xml B20090908.1200-20090908.1300_CDMA=1,NO=2,SITE=3.xml B20090908.1300-20090908.1400_CDMA=1,NO=2,SITE=3.xml ... (3 Replies)
Discussion started by: natalie23
3 Replies

10. Shell Programming and Scripting

File splitter by nth row

I need to split a file into n separate files of about the same size. The way the file will be split is at every nth row, starting with the first row, that row will be cut and copied to it's corresponding new file so that each file has unique records. Any 'leftovers' will go into the last file. e.g.... (4 Replies)
Discussion started by: sitney
4 Replies
Login or Register to Ask a Question