Sujet : Re: printing words without newlines?
De : gazelle (at) *nospam* shell.xmission.com (Kenny McCormack)
Groupes : alt.comp.lang.awk comp.lang.awkDate : 13. May 2024, 07:56:50
Autres entêtes
Organisation : The official candy of the new Millennium
Message-ID : <v1sdji$tofu$2@news.xmission.com>
References : 1
User-Agent : trn 4.0-test77 (Sep 1, 2010)
In article <
v1pi7c$2b87j$1@dont-email.me>,
David Chmelik <
dchmelik@gmail.com> wrote:
...
# print_file_words.awk
# pass filename to function
BEGIN { print_file_words("data.txt"); }
>
# read two-column array from file and sort lines and print
function print_file_words(file) {
# set record separator then use print
# ORS=" "
while(getline<file) arr[$1]=$0
PROCINFO["sorted_in"]="@ind_num_asc"
for(i in arr)
{
split(arr[i],arr2)
# output all words or on one line with ORS
print arr2[2]
# output all words on one line without needing ORS
#printf("%s ",arr2[2])
}
}
------------------------------------------------------------------------
# sample data.txt
2 your
1 all
3 base
5 belong
4 are
7 us
6 to
I guess this is what you actually want:
{ A[$1] = $2 }
END {
len = length(A)
for (i=1; i<=len; i++)
printf("%s%s",A[i],i<len ? " " : "\n")
}
-- The randomly chosen signature file that would have appeared here is more than 4lines long. As such, it violates one or more Usenet RFCs. In order to remainin compliance with said RFCs, the actual sig can be found at the following URL: http://user.xmission.com/~gazelle/Sigs/Noam