GNU/Linux >> Tutoriales Linux >  >> Linux

obtenga los primeros 5 caracteres de cada línea en el script de shell

Si quieres usar cut de esta manera, debe usar la redirección <<< (una cadena aquí) como:

var=$(cut -c-5 <<< "$line")

Tenga en cuenta el uso de var=$(command) expresión en lugar de id= cut -c-5 $line . Esta es la forma de guardar el comando en una variable.

Además, use /bin/bash en lugar de /bin/sh para que funcione.

Código completo que me funciona:

#!/bin/bash

filename='sample.txt'
while read -r line
do
  id=$(cut -c-5 <<< "$line")
  echo $id
  #code for passing id to other script file as parameter
done < "$filename"

Bueno, es una sola línea cut -c-5 sample.txt . Ejemplo:

$ cut -c-5 sample.txt 
31113
31114
31111
31112

A partir de ahí, puede canalizarlo a cualquier otro script o comando:

$ cut -c-5 sample.txt | while read line; do echo Hello $line; done
Hello 31113
Hello 31114
Hello 31111
Hello 31112

Linux
  1. ¿Cómo obtener la dirección IP propia y guardarla en una variable en un script de Shell?

  2. ¿Cómo mostrar los caracteres de control (^c, ^d, ^[, …) de manera diferente en el Shell?

  3. ¿Contar los caracteres de cada línea con Wc?

  4. ¿No puede obtener el código de salida correcto de un script?

  5. Omitir la primera línea de cualquier salida de comando de Linux

Obtenga los últimos 4 caracteres de salida desde la salida estándar

Cómo obtener PID del proceso secundario bifurcado en el script de shell

Obtenga una línea específica del archivo de texto usando solo un script de shell

Ejecute un script de shell desde el comando docker-compose, dentro del contenedor

¿Cómo obtener la URL del archivo de Dropbox desde la línea de comando?

¿Cómo obtengo mi dirección IP desde la línea de comandos?