Saltar al contenido

Usando el delimitador de tabulación en Cut en Unix Shell Scripting

Es imprescindible interpretar el código correctamente previamente a aplicarlo a tu trabajo y si tdeseas aportar algo puedes dejarlo en los comentarios.

Solución:

cut -f 1 input.txt

Esto le da la primera columna del archivo delimitado por tabulaciones input.txt. El delimitador de campo predeterminado para cut es el carácter de tabulación, por lo que no es necesario especificarlo más.

Si el delimitador es Realmente un espacio, uso

cut -d ' ' -f 1 input.txt

Si resulta que hay múltiple tabulaciones y/o espacios, utilice awk:

awk ' print $1 ' input.txt

El bucle de shell no es necesario para esta operación, independientemente de si usa cut o awk.

Consulte también “¿Por qué se considera una mala práctica usar un bucle de shell para procesar texto?”.


La razón por la que su secuencia de comandos no funciona es porque la pestaña desaparece cuando echo la variable sin comillas.

Relacionados:

  • ¿Por qué printf es mejor que echo?

  • Implicaciones de seguridad de olvidar citar una variable en shells bash/POSIX

Pestaña es el separador predeterminado para cutno necesita un argumento explícito para ello.

Sin embargo, debe citar su variable para evitar que las pestañas se conviertan en espacios.

SN=`echo "$line"|cut -f1`

Pero también puedes evitar usar cut en primer lugar. solo configura IFS para t.

IFS=$'t'
while read -r SN rest
do 
    echo "$SN"
done < input.txt

Al final de todo puedes encontrar las críticas de otros desarrolladores, tú de igual forma puedes mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *