Want to split awk command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Want to split awk command
# 8  
Old 07-06-2013
Hi I tried Yoda's suggesstion but it is not working.
It is giving following error:

Code:
awk:0602-512 The string %-1s;%-12s cannot contain a newline character.The source line is 1.
The error context is 
       {printf "%-1s;%-12s;'%-2s;%-12s;%-12s;%-1s;%-12s;%-6s;%-12s;%-4s;%-12s;%-20s;%-8s;\>>>
<<<
Syntax Error The source line is 2.

awk:0602-502 The statement cannot be correctly parsed.The source line is 2.

# 9  
Old 07-06-2013
Quote:
A <newline> shall not occur within a string constant
awk: Lexical Conventions

So Don Cragun's suggestion should be the correct syntax..

Last edited by Scrutinizer; 07-06-2013 at 07:48 AM..
# 10  
Old 07-07-2013
Could this help you ?
Code:
awk -F "\t" 'BEGIN{f[1]=1 ;f[2]=12; f[3]=2;f[4]=12;f[5]=12;f[6]=1;f[7]=12;f[8]=6;f[9]=12;
f[10]=4;f[11]=12;f[12]=20;f[13]=8;f[14]=3;f[15]=11;f[16]=6;f[17]=15;f[18]=11;f[19]=105;f[20]=70;
f[21]=35;f[22]=35;f[23]=35;f[24]=35;f[25]=35;f[26]=35;f[27]=90;f[28]=15;f[29]=70;f[30]=2;
f[31]=10;f[32]=4;f[33]=4;f[34]=35;f[35]=60;f[36]=12;f[37]=12;f[38]=35;f[39]=70;
}
{ for (i=1;i<=39;i++) {
printf "%-"f[i]"s;",$i
}
}
END {printf "\n";} Filename

# 11  
Old 07-07-2013
Another option:
Code:
awk -F'\t' -v width="1 12 2 12 12 1 12 6 12 4 12 20 8 3 11 6 15 11 105 70 35 35 35 35 35 35 90 15 70 2 10 4 4 35 60 12 12 35 70" ' 
  BEGIN{
    m=split(width, W, / /)
  }
  {
    for (i=1; i<=m; i++) printf "%-" W[i] "s" OFS, $i; print x
  }
' OFS=\; file


Last edited by Scrutinizer; 07-07-2013 at 03:58 AM..
# 12  
Old 07-07-2013
With a function:
Code:
awk 'function f(s,w) {printf "%-"w"s", s}
{
f($1,1)
f($2,12)
f($3,2)
...
}
{print ""}' file


Last edited by MadeInGermany; 07-07-2013 at 06:06 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk command to split pipe delimited file

Hello, I need to split a pipe de-limited file based on the COLUMN 7 value . If the column value changes I need to split the file Source File Payment|ID|DATE|TIME|CONTROLNUMBER|NUMBER|NAME|INDICATOR 42156974|1137937|10/1/2018|104440|4232|2054391|CARE|1... (9 Replies)
Discussion started by: rosebud123
9 Replies

2. Shell Programming and Scripting

awk split and awk calculation in the same command

I am trying to run the awk below. My question is when I split the input, then run anotherawk to perform a calculation using that splitas the input there are no issues. When I try to combine them the output is not correct, is the split not working or did I do it wrong? Thank you :). input ... (8 Replies)
Discussion started by: cmccabe
8 Replies

3. Shell Programming and Scripting

awk split command to get the desired result

Dear all, I am using the awk 'split' command to get the particular value. FILE=InputFile_009_0.txt Temp=$(echo $FILE | awk '{split($FILE, a, "e_"); print a}') I would like to have the Temp take the value as : _009_0 ... (4 Replies)
Discussion started by: emily
4 Replies

4. Shell Programming and Scripting

awk to split one field and print the last two fields within the split part.

Hello; I have a file consists of 4 columns separated by tab. The problem is the third fields. Some of the them are very long but can be split by the vertical bar "|". Also some of them do not contain the string "UniProt", but I could ignore it at this moment, and sort the file afterwards. Here is... (5 Replies)
Discussion started by: yifangt
5 Replies

5. Shell Programming and Scripting

Split a file using awk command.

awk 'FNR == 1 { c = 1 } { print > (f c) } !FNR%n { close(f c); ++c }' n=$files_per_stream f=$input_path/filename_ $input_file $input_file with some records are splitted into files named filename_1,filename_2...etc according to $files_per_stream. Plz help me know how and if anyone has... (7 Replies)
Discussion started by: guptam
7 Replies

6. Shell Programming and Scripting

using awk in perl with split command

Hi, I have an array with following data. First field shows the owner and second is unique name. Now i have to pic the latest value with respect to the date in case of duplicate. like "def" is from two owners "rahul/vineet", now i want the latest from the two and the owner name also for all the... (9 Replies)
Discussion started by: vineet.dhingra
9 Replies

7. Shell Programming and Scripting

Awk command to split file name

Hi I have few files with format access.2Nov-12:15AM. These files will be generated daily . I need to write a script so that if today's date is less than 10 then it has to zip the file and rename it to acess.02Nov-12:15AM.gz .please help me in this . Also please help me in splitting the file... (10 Replies)
Discussion started by: mskalyani9
10 Replies

8. UNIX for Dummies Questions & Answers

awk split

Can anybody tell me what is wrong with this ? It does not produce anyoutput. awk 'split( "this:that", arr,":")' (2 Replies)
Discussion started by: jville
2 Replies

9. UNIX for Dummies Questions & Answers

Split a file with no pattern -- Split, Csplit, Awk

I have gone through all the threads in the forum and tested out different things. I am trying to split a 3GB file into multiple files. Some files are even larger than this. For example: split -l 3000000 filename.txt This is very slow and it splits the file with 3 million records in each... (10 Replies)
Discussion started by: madhunk
10 Replies

10. Shell Programming and Scripting

awk command to split in to 2 files

Hi, I have a problem in grepping a file for 2 strings and writing them to 2 appropriate files. I need to use the awk command and read the file only once and write to the appropriate file. My file is very huge in size and it is taking a long time using cat command and grep command. Can anyone... (3 Replies)
Discussion started by: m_subra_mani
3 Replies
Login or Register to Ask a Question