Я должен сделать скрипт в AWK, который выберет более длинное поле в строке и после этого в конце покажет в две строки и под (во второй строке) длиной.
Я сделал это:
NF>0 || $0=="^[[:space:]]{1,}$"{
tab[FNR]=$1
len[FNR]=length($1)
i=2
while (i<=NF)
{
len2=length($i)
if(len2>len[FNR])
{
tab[FNR]=$i
len[FNR]=len2
}
i=i+1
}
print tab[FNR]
}
END{
for(x in tab)
{
printf("%s ",tab[x])
}
for (y in len)
{
printf("%d ", len[y])
}
}
Но результаты:(..) Non-ASCII
Informative Meta-Syntax Transport Fields", Structured Identification 2919, Showalter, Language", "Internationalized Applications August Bernstein, <http://cr.yp.to/proto/verp.txt>. Addresses Levine Taughannock Box Trumansburg, US Phone: standards@taugh.com http://jl.ly Randall Incorporated Morehouse Diego, US rg+ietf@qti.qualcomm.com Informational
11 11 10 13 9 9 8 14 12 9 11 14 6 14 13 11 10 11 11 9 9 11 8 39 9 10 9 8 10 38 11 12 10 10 10 10 13 1 9 8 12 13 9 9 8 8 6 7 8 11 12 14 10 10 11 12 14 12 10 13 17 9 10 13 11 10 8 13 11 13 9 9 14 10 9 9 8 13 12 10 10 13 1 9 13 12 11 10 13 7 12 8 13 16 7 10 8 9 13 12 7 9 9 11 14 11 14 13 11 12 15 9 7 12 9 10 7 11 8 10 11 13 8 14 13 13 1 9 9 8 12 13 20 13 13 11 13 11 9 9 11 10 11 13 9 12 13 11 12 11 13 13 10 12 8 11 8 13 9 10 8 10 12 10 12 13 1 9 8 8 12 16 9 10 11 11 9 12 9 10 11 10 7 10 11 8 8 10 8 9 9 6 9 8 9 11 8 9 10 8 9 9 8 8 9 10 12 10 9 11 13 1 9 7 13 11 8 9 11 10 8 8 25 10 38 17 45 15 43 10 25 11 28 13 49 10 13 10 10 7 7 9 8 10 10 17 10 12 10 12 10 13 1 9 9 8 10 8 10 15 12 7 9 14 8 13 17 9 10 9 8 11 10 9 9 10 15 10 10 10 11 10 11 9 9 10 10 9 10 12 8 11 14 11 9 9 13 1 9 8 10 11 10 10 5 12 11 10 10 10 9 10 10 12 11 9 10 7 10 14 7 10 10 12 10 7 9 8 10 8 9 17 13 1 9 11 11 9 8 10 14 5 10 10 18 12 6 10 33 9 6 11 3 12 2 6 19 12 7 12 9 6 2 24 13 1
Он просто напечатан так, как я написал - сначала все слова и после него длина, но я не знаю, как сделать это правильно. Не могли бы вы сказать мне, как я могу печатать слова и непосредственно под их длиной?