GNU/Linux >> Tutoriales Linux >  >> Linux

Encontrar la palabra más larga en un archivo de texto

Otra solución:

for item in  $(cat "$infile"); do
  length[${#item}]=$item          # use word length as index
done
maxword=${length[@]: -1}          # select last array element

printf  "longest word '%s', length %d" ${maxword} ${#maxword}

Normalmente, querrías usar un while read bucle en lugar de for i in $(cat) , pero como desea dividir todas las palabras, en este caso funcionaría bien.

#!/bin/bash
longest=0
for word in $(<so.txt)
do
    len=${#word}
    if (( len > longest ))
    then
        longest=$len
        longword=$word
    fi
done
printf 'The longest word is %s and its length is %d.\n' "$longword" "$longest"

golpea una línea.

sed 's/ /\n/g' YOUR_FILENAME | sort | uniq | awk '{print length, $0}' | sort -nr | head -n 1
  1. leer archivo y dividir las palabras (a través de sed)
  2. eliminar duplicados (vía sort | uniq)
  3. prefije cada palabra con su longitud (awk)
  4. ordenar la lista por longitud de palabra
  5. imprime la palabra individual con mayor longitud.

sí, esto será más lento que algunas de las soluciones anteriores, pero tampoco requiere recordar la semántica de bash for loops.


longest=""
for word in $(cat so.txt); do
    if [ ${#word} -gt ${#longest} ]; then
        longest=$word
    fi
done

echo $longest

Linux
  1. Crear archivos usando la línea de comando en Linux

  2. ¿Cómo insertar un texto al principio de un archivo?

  3. ¿Cómo inserto texto en la primera línea de un archivo usando sed?

  4. ¿Podría menos mostrar la proporción vista del archivo de texto?

  5. Elimine eficientemente las dos últimas líneas de un archivo de texto extremadamente grande

Cómo contar las apariciones de palabras en un archivo de texto

Cómo agregar texto al comienzo del archivo en Linux

Cómo buscar y reemplazar texto, palabra o cadena en un archivo

3 formas de crear un archivo de texto rápidamente a través de la terminal de Linux

¿Cómo puedo obtener la duración de un archivo de video desde la consola?

Mantenga un historial de todas las modificaciones a un archivo de texto