Split file by column value


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Split file by column value
# 1  
Old 12-21-2012
Split file by column value

Please help me figure out whats wrong with my code,
I have to split a file according to values in 3rd thru 6th column,

If the 3rd or 4th col values are >0, row goes to 1 file, if 3rd and 5th are >0,row goes to another file...and so on...

What is wrong with my code? It doesn't seem to work. No error but no output either,

Sample input
Code:
chr7 16736 3 0 4 0
chr7 16737 4 0 4 0
chr7 16738 6 0 5 0
chr7 16739 6 0 5 0
chr7 16740 7 0 5 1
chr7 16741 8 0 5 1
chr7 16742 8 0 5 1




I tried.

Code:
awk -F"\t" '{
    if( ($3 > '0')  &&  ($4 > '0'))                        
   {
        print $0 >> "mat_filt1.txt" 
 
   }
    if( ($3 > '0')  && ($5 > '0'))                        
   {
        print $0 >> "mat_filt2.txt"
    
   }
     if( ($3 > '0')  && ($6 > '0'))                        
   {
        print $0 >> "mat_filt3.txt"

   }
     if( ($4 > '0')  && ($5 > '0'))                        
   {
        print $0 >> "mat_filt4.txt"  
     
   }
     if( ($4 > '0')  && ($6 > '0'))                        
   {
        print $0 >> "mat_filt5.txt"  

   }
     if( ($5 > '0')  && ($6 > '0'))                        
   {
        print $0 >> "mat_filt6.txt"
   
   }
    
} '

# 2  
Old 12-21-2012
Try without using field separator:-
Code:
awk '{
 if(($3 > 0)  && ($4 > 0))
  print $0 > "mat_filt1.txt"
 if(($3 > 0)  && ($5 > 0))
  print $0 > "mat_filt2.txt"
 if(($3 > 0)  && ($6 > 0))
  print $0 > "mat_filt3.txt"
 if(($4 > 0)  && ($5 > 0))
  print $0 > "mat_filt4.txt"
 if(($4 > 0)  && ($6 > 0))
  print $0 > "mat_filt5.txt"
 if(($5 > 0)  && ($6 > 0))
  print $0 > "mat_filt6.txt"
} ' infile

This User Gave Thanks to Yoda For This Post:
# 3  
Old 12-21-2012
I was being stupid..thank you..Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To Split the file based on column value

Hi Team, I have a requirement in such a way that need to split the file into two based on which column particular value appears.Please find my sample file below. Lets consider the delimiter of this file as either comma or two colons.(:: and ,). So I need to split the file in such a way that all... (2 Replies)
Discussion started by: ginrkf
2 Replies

2. Shell Programming and Scripting

Split file when value in column is blank

Hi Experts, In short : Need to split file when field in column 5 is blank and need to generate two file in which column 5 is blank and other in which column 5 has values along with other rows and column data My issue is i am not able to get header for column from raw file into new file which... (4 Replies)
Discussion started by: as7951
4 Replies

3. Shell Programming and Scripting

How to split a file into column with awk?

The following is my code nawk -F',' ' BEGIN { printf "MSISDN,IMSI,NAM,TS11,TS21,TS22,OBO,OBI,BAIC,BAOC,BOIC,BOIEXH,APNID0,APNID1,APNID2,APNID3,APNID0,CSP,RSA\n" } { for(i=1; i<=NF; i++) { split($i,a,":") gsub(" ","", a) printf "%s;",a } printf "\n" }'HLR_DUMP_BZV >> HLR_full This is... (1 Reply)
Discussion started by: gillesi
1 Replies

4. Shell Programming and Scripting

Split file by column value, each with header

Hello all, I have a csv with with different testcase values in column 5. year,min,max,Instrument,Testcase 2016,201,1003,GEOTROPH-02116,TATA7980 2016,53,1011,GEOTROPH-01963,TATA7980 2016,3,1024,GEOTROPH-02067,TATA7980 2016,203,1027,GEOTROPH-02011,TATA7980... (16 Replies)
Discussion started by: senhia83
16 Replies

5. Shell Programming and Scripting

Split file according to column values

Hi all, I am trying to split a file by the values of the FIRST column. The following awk works to split the file by the value of the LAST column -- How can I alter this to divide the column by the FIRST column?? awk -F"\t" '{ print > $NF ; close($NF)}' filename1Thanks! (5 Replies)
Discussion started by: owwow14
5 Replies

6. Shell Programming and Scripting

Split file depending on Column Value

Hi , my file look likes below , cat file.csv 12/09/2014,50,5,0,300 12/09/2014, ,5,0,300 12/09/2014,50,,,300 i need to split file , the first one contains values (2nd column is 50 , 3rd and fourth column is null ) the second file contains all others firstfile ... (2 Replies)
Discussion started by: ubaisalih
2 Replies

7. Shell Programming and Scripting

Split column using awk in a text file

chr1 412573 . A C 2758.77 . AC=2;AF=1.00;AN=2;DP=71;Dels=0.00;FS=0.000;HaplotypeScore=2.8822;MLEAC=2;MLEAF=1.00;MQ=58.36;MQ0=0;QD=38.86;resource.EFF=INTERGENIC(MODIFIER||||||||) GT:AD:DP:GQ:PL 1/1:0,71:71:99:2787,214,0 GATKSAM chr1 602567 rs21953190 A ... (9 Replies)
Discussion started by: mehar
9 Replies

8. UNIX for Dummies Questions & Answers

Split file based on column

i have file1.txt asdas|csada|130310|0423|A1|canberra sdasd|sfdsf|130426|2328|A1|sydney Expected output : on eaceh third and fourth colum, split into each two characters asdas|csada|13|03|10|04|23|A1|canberra sdasd|sfdsf|13|04|26|23|28|A1|sydney (10 Replies)
Discussion started by: radius
10 Replies

9. Shell Programming and Scripting

Split the file based on column

Hi, I have a file sample_1.txt (300k rows) which has data like below: * Also each record is around 64k bytes 11|1|abc|102553|125589|64k bytes of data 10|2|def|123452|123356|...... 13|2|geh|144351|121123|... 25|4|fgh|165250|118890|.. 14|1|abc|186149|116657|......... (6 Replies)
Discussion started by: sol_nov
6 Replies

10. Shell Programming and Scripting

How to split a data file into separate files with the file names depending upon a column's value?

Hi, I have a data file xyz.dat similar to the one given below, 2345|98|809||x|969|0 2345|98|809||y|0|537 2345|97|809||x|544|0 2345|97|809||y|0|651 9685|98|809||x|321|0 9685|98|809||y|0|357 9685|98|709||x|687|0 9685|98|709||y|0|234 2315|98|809||x|564|0 2315|98|809||y|0|537... (2 Replies)
Discussion started by: nithins007
2 Replies
Login or Register to Ask a Question