Si vous souhaitez utiliser cut
de cette façon, vous devez utiliser la redirection <<<
(une chaîne ici) comme :
var=$(cut -c-5 <<< "$line")
Notez l'utilisation de var=$(command)
expression au lieu de id= cut -c-5 $line
. C'est le moyen d'enregistrer la commande dans une variable.
Utilisez également /bin/bash
au lieu de /bin/sh
pour le faire fonctionner.
Code complet qui fonctionne pour moi :
#!/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"
Eh bien, c'est une ligne cut -c-5 sample.txt
. Exemple :
$ cut -c-5 sample.txt
31113
31114
31111
31112
À partir de là, vous pouvez le rediriger vers n'importe quel autre script ou commande :
$ cut -c-5 sample.txt | while read line; do echo Hello $line; done
Hello 31113
Hello 31114
Hello 31111
Hello 31112