How to split file into multiple files using awk based on 1 field in the file?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to split file into multiple files using awk based on 1 field in the file?
# 1  
Old 07-19-2012
How to split file into multiple files using awk based on 1 field in the file?

Good day all

I need some helps,

say that I have data like below, each field separated by a tab
Code:
DATE            NAME    ADDRESS
15/7/2012     LX         a.b.c
15/7/2012     LX1        a.b.c
16/7/2012     AB         a.b.c
16/7/2012     AB2        a.b.c
15/7/2012     LX2        a.b.c
15/7/2012     LX3         a.b.c
17/6/2012     CD         a.b.c

How can split this file into

Option 1: 3 daily files
Code:
15/7/2012
16/7/2012
17/6/2012

Option 2: 2 monthly files
Code:
june2012
july2012


Last edited by Scott; 07-19-2012 at 05:01 AM.. Reason: lease use code tags
# 2  
Old 07-19-2012
Hi alexyyw,

Welcome to the forum.

You could try these options.

For option1:
Code:
awk '{split($1,a,"/"); x="_"; print > a[1] x a[2] x a[3]}' file


For option2:
Code:
awk '{split($1,a,"/"); x="_"; print > a[2] x a[3]}' file


Please use code-tags next time.
# 3  
Old 07-19-2012
Hi alexyyw,

clx was faster, but here you have other way to have the result :

Option 1 :
Code:
awk '$1 ~ /.*\/.*\/..../ { split($1,a,"/"); print >a[1]"_"a[2]"_"a[3]; }' alexyyw.inputfile

Option 2 :
Code:
awk '$1 ~ /.*\/.*\/..../ { split($1,a,"/"); print >strftime("%B%Y",mktime(sprintf("%04d %02d %02d 00 00 00",a[3],a[2],a[1]))); }' alexyyw.inputfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Split file into multiple files based on empty lines

I am using below code to split files based on blank lines but it does not work. awk 'BEGIN{i=0}{RS="";}{x="F"++i;}{print > x;}' Your help would be highly appreciated find attachment of sample.txt file (2 Replies)
Discussion started by: imranrasheedamu
2 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

Split a big file into multiple files based on first four characters

I have a requirement to split a huge file to smaller text files based on first four characters which look like ABCD 1234 DFGH RREX : : : : : 0000 Each of these records are OF EQUAL bytes with a different internal layout based on the above first digit identifier.. Any help to start... (5 Replies)
Discussion started by: etldev
5 Replies

4. Shell Programming and Scripting

awk script to split file into multiple files based on many columns

So I have a space delimited file that I'd like to split into multiple files based on multiple column values. This is what my data looks like 1bc9A02 1 10 1000 FTDLNLVQALRQFLWSFRLPGEAQKIDRMMEAFAQRYCQCNNGVFQSTDTCYVLSFAIIMLNTSLHNPNVKDKPTVERFIAMNRGINDGGDLPEELLRNLYESIKNEPFKIPELEHHHHHH 1ku1A02 1 10... (9 Replies)
Discussion started by: viored
9 Replies

5. Shell Programming and Scripting

Split a file into multiple files based on field value

Hi, I've one requirement. I have to split one comma delimited file into multiple files based on one of the column values. How can I achieve this Unix Here is the sample data. In this case I have split the files based on date column(c4) Input file c1,c2,c3,c4,c5... (1 Reply)
Discussion started by: manasvi24
1 Replies

6. Shell Programming and Scripting

Split a file into multiple files based on line numbers and first column value

Hi All I have one query,say i have a requirement like the below code should be move to diffent files whose maximum lines can be of 10 lines.Say in the below example,it consist of 14 lines. This should be moved logically using the data in the fisrt coloumn to file1 and file 2.The data of first... (2 Replies)
Discussion started by: sarav.shan
2 Replies

7. Shell Programming and Scripting

Split a file into multiple files based on first two digits of file.

Hi , I do have a fixedwidth flatfile that has data for 10 different datasets each identified by the first two digits in the flatfile. 01 in the first two digit position refers to Set A 02 in the first two digit position refers to Set B and so on I want to genrate 10 different files from my... (6 Replies)
Discussion started by: okkadu
6 Replies

8. Shell Programming and Scripting

split XML file into multiple files based on pattern

Hello, I am using awk to split a file into multiple files using command: nawk '{ if ( $1 == "<process" ) { n=split($2, arr, "\""); file=arr } print > file }' processes.xml <process name="Process1.process"> ... (3 Replies)
Discussion started by: chiru_h
3 Replies

9. Shell Programming and Scripting

Split a file into multiple files based on the input pattern

I have a file with lines something like. ...... 123_start ...... ....... 123_end .... ..... 456_start ...... ..... 456_end .... ..... 789_start .... .... 789_end (6 Replies)
Discussion started by: abinash
6 Replies

10. Shell Programming and Scripting

Split single file into multiple files based on the number in the column

Dear All, I would like to split a file of the following format into multiple files based on the number in the 6th column (numbers 1, 2, 3...): ATOM 1 N GLY A 1 -3.198 27.537 -5.958 1.00 0.00 N ATOM 2 CA GLY A 1 -2.199 28.399 -6.617 1.00 0.00 ... (3 Replies)
Discussion started by: tomasl
3 Replies
Login or Register to Ask a Question