Para obter a palavra mais longa, podemos usar a função awk
do length
. Em seguida, classifique, em seguida, head
e cut
para obter a linha e o campo corretos.
awk '$2~/^a/ {print length($2), $2}' file | sort -k1 | head -1 | cut -d" " -f1
Para obter a palavra A mais frequente, use sort
e awk
:
sort -k1 file | awk '$2~/^a/ {print $2; exit}'
Na vida real, eu provavelmente evitaria muito as coisas. Eu provavelmente faria cada um em um único awk
. Difícil dizer se eles realmente teriam um desempenho mais rápido. awk
é flexível, mas não tão rápido.
awk 'BEGIN{lc=0;lw=""} $2~/^a/ {l=length($2); if (l>lc){lc=l;lw=$2}} END{print lw}' file
awk 'BEGIN{fc=0;fw=""} $2~/^a/ {if ($1>fc){fc=$1;fw=$2}} END{print fw}' file