Sponsored Content
Full Discussion: Sorting output of AWK array
Top Forums Shell Programming and Scripting Sorting output of AWK array Post 302718029 by Jotne on Friday 19th of October 2012 03:32:50 AM
Old 10-19-2012
Sorting output of AWK array

I need help to sort the output of an awk array

Example data
Code:
data="1 blue
2 green
3 blue
4 yellow
5 blue
6 red
7 yellow
8 red
9 yellow
10 yellow
11 green
12 orange
13 black"

My awk line to get output in one line
Code:
echo "$data" | awk  ' {arr[$2]++; next} END { for (i in arr) { if(arr[i]>1 ) printf "%s(%s) ",i,arr[i]};print "" }'

gives this output:
Code:
red(2) yellow(4) green(2) blue(3)

I need to count all hits, then print all with 2 or more hits sorted in one line like this (high to low):
Code:
yellow(4) blue(3) red(2) green(2)



I did look at the xargs and sort command, but this sorts on name.
Code:
echo "$data" | awk  ' {arr[$2]++; next} END { for (i in arr) { if(arr[i]>1 ) printf "%s(%s) ",i,arr[i]};print "" }' | xargs -n 1| sort | xargs

This gives Smilie
Code:
blue(3) green(2) red(2) yellow(4)

Would be nice if all can be done in awk
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

move output of awk to array

Hi experts, I have a the following awk command, awk '{print $1}' /users/jon/list4.txt. The output is 123 787 888 ... ... I want to move the output to array using shell programming. My shell is tcsh. Is it possible to move to array using shell porg? I know its possible in... (14 Replies)
Discussion started by: amitrajvarma
14 Replies

2. Shell Programming and Scripting

bash:awk output into an array

Hi, I have a file 1:apple orange:one 2:banana:two 3:cherry:3 When I do awk -F: ' { print $2 } ' file apple orange banana cherry Now, when i redirect awk output to the file it has issue with strings #!/bin/bash FILEA=file A=(`awk -F: ' { print $2 } ' $FILEA `) echo ${A} (2 Replies)
Discussion started by: phamp008
2 Replies

3. Shell Programming and Scripting

Sorting Awk generalized array

Generalized arrays take any type of variable(s) as subscripts, but the subscript(s) are treated as one long string expression. The use of for(a in x) on a generalized array will return all of the valid subscripts in some order, not necessarily the one you wished. How can I make it so that i... (2 Replies)
Discussion started by: gio001
2 Replies

4. Shell Programming and Scripting

perl array sorting

Hi All, I have an array in perl as @match = (201001,201002,201001,201002); I am trying to sort this array as @match = sort(@match); print "@match"; I dont see the output sorted any answers I also tried another way, but still the results are not sorted foreach my $match (sort { $a... (2 Replies)
Discussion started by: bsdeepu
2 Replies

5. Shell Programming and Scripting

awk - Pre-populating an array from system command output

So, here's a scenario that requires the same logic as what I'm working on: Suppose that you have a directory containing files named after users. For awk's purposes, the filename is a single field-- something parse-friendly, like john_smith. Now, let's say that I'd like to populate an array in... (2 Replies)
Discussion started by: treesloth
2 Replies

6. Shell Programming and Scripting

Sorting awk array output?

Hi all, I have a script which produces a nice table but I want to sort it on column 3. This is the output line in the script: # Output { FS = ":"; format = "%11s %6s %-16s\n"; prinft "\n" printf ( format, "Size","Count","Who" ) } for (i in... (21 Replies)
Discussion started by: Cowardly
21 Replies

7. Shell Programming and Scripting

awk output error while loop through array

Have built this script, the output is what I needed, but NR 6 is omitted. Why? Is it an error? I am using Gawk. '{nr=$2;f = $1} END{for (i=1;i<=f;i++) if (nr != i) print i, nr }' input1.csv >output1.csvinput1.csv 1 9 3 5 4 1 7 6 8 5 10 6 output1.csv > with the missing line number 6. 6 is... (5 Replies)
Discussion started by: sdf
5 Replies

8. Shell Programming and Scripting

awk assign output of array to specific field-number

With this script i want to print the output to a specific field-number . Can anybody help? awk 'NR=FNR{split(FILENAME,fn,"_");nr=$2;f = $1} END{for (i=1;i<=f;i++) print i,$fn=nr}' input_5.csv input_6.csvinput_5.csv 4 135 5 185 6 85 11 30input_6.csv 1 90 3 58 4 135 7 60 8 55 10... (1 Reply)
Discussion started by: sdf
1 Replies

9. Shell Programming and Scripting

Need to have output of AWK array in one line

I have this code echo $logfile | awk ' {arr++; next} END { for (i in arr) {print i} }' that gives me this output result1 result2 result3 I try to figure out how to get it like this result1 result2 result3 (4 Replies)
Discussion started by: Jotne
4 Replies

10. Shell Programming and Scripting

ksh : need to store the output of a awk command to a array

I have awk command : awk -F ' ' '{ print $NF }' log filename And it gives the output as below: 06:00:00 parameters: SDS (2) no no no no doc=4000000000). information: (6 Replies)
Discussion started by: ramprabhum
6 Replies
secolor.conf(5) 						File Formats Manual						   secolor.conf(5)

NAME
secolor.conf - The SELinux color configuration file. DESCRIPTION
This optional file controls the color to be associated to the context components associated to the raw context passed by selinux_raw_con- text_to_color(3), when context related information is to be displayed in color by an SELinux-aware application. selinux_raw_context_to_color(3) obtains this color information from the active policy secolor.conf file as returned by selinux_col- ors_path(3). FILE FORMAT
The file format is as follows: color color_name = #color_mask [...] context_component string = fg_color_name bg_color_name [...] Where: color The color keyword. Each color entry is on a new line. color_name A single word name for the color (e.g. red). color_mask A color mask starting with a hash (#) that describes the hexadecimal RGB colors with black being #000000 and white being #ffffff. context_component The context component name that must be one of the following: user, role, type or range Each context_component string ... entry is on a new line. string This is the context_component string that will be matched with the raw context component passed by selinux_raw_context_to_color(3). A wildcard '*' may be used to match any undefined string for the user, role and type context_component entries only. fg_color_name The color_name string that will be used as the foreground color. A color_mask may also be used. bg_color_name The color_name string that will be used as the background color. A color_mask may also be used. EXAMPLES
Example 1 entries are: color black = #000000 color green = #008000 color yellow = #ffff00 color blue = #0000ff color white = #ffffff color red = #ff0000 color orange = #ffa500 color tan = #D2B48C user * = black white role * = white black type * = tan orange range s0-s0:c0.c1023 = black green range s1-s1:c0.c1023 = white green range s3-s3:c0.c1023 = black tan range s5-s5:c0.c1023 = white blue range s7-s7:c0.c1023 = black red range s9-s9:c0.c1023 = black orange range s15:c0.c1023 = black yellow Example 2 entries are: color black = #000000 color green = #008000 color yellow = #ffff00 color blue = #0000ff color white = #ffffff color red = #ff0000 color orange = #ffa500 color tan = #d2b48c user unconfined_u = #ff0000 green role unconfined_r = red #ffffff type unconfined_t = red orange user user_u = black green role user_r = white black type user_t = tan red user xguest_u = black yellow role xguest_r = black red type xguest_t = black green user sysadm_u = white black range s0:c0.c1023 = black white user * = black white role * = black white type * = black white SEE ALSO
selinux(8), selinux_raw_context_to_color(3), selinux_colors_path(3) SELinux API documentation 08 April 2011 secolor.conf(5)
All times are GMT -4. The time now is 09:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy