Skip to main content
Became Hot Network Question
Fixed the last code block
Source Link
Quasímodo
  • 19.4k
  • 4
  • 41
  • 78

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$i;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```File

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$i;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$i;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File
edited body
Source Link
Giles
  • 907
  • 7
  • 20

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$x;next;s+=$i;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$x;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$i;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```
added 272 characters in body
Source Link
Giles
  • 907
  • 7
  • 20

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$x;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

I have a line of code I want to use, but I want it to loop through all the columns in a file, I can do it outside of awk but its really slow. My problem is that I'm not good at looping inside awk, I can run a simple awk loop but this needs something that I can't do yet. So if you can explain how you solve this question it will help me in the future.

The awk command at the moment will output the percentage equivalent of each integer within the selected column ($i). This is the current awk command: awk -F ',' -v x=$i 'FNR==NR{s+=$x;next;} {printf "%s\n",100*$x/s}' File File

Example input for the above command:

1    
4    
3    
2    

Example output for the above command:

10.00000    
40.00000    
30.00000        
20.00000        

I need to loop in awk for all of the columns in the file (the file column number is unknown)

so if the input had more than one column, the example input could be:

1,4,2    
4,4,1  
3,1,6    
2,1,1    

Example output:

10.00000,40.00000,20.00000    
40.00000,40.00000,10.00000  
30.00000,10.00000,60.00000    
20.00000,10.00000,10.00000    

This is the attempt I made (below), obviously its wrong, I tried running a loop for both sections but that didn't give me any output at all.

awk -F"," 'NR==FNR { for (i=1;i<=NF;i++) {s+=$x;next;} next } { for (i=1;i<=NF;i++)printf "%s%%\n",100*$i/s }' File File```
added 74 characters in body
Source Link
Giles
  • 907
  • 7
  • 20
Loading
added 11 characters in body
Source Link
Giles
  • 907
  • 7
  • 20
Loading
Source Link
Giles
  • 907
  • 7
  • 20
Loading