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