Pokud chcete použít cut
tímto způsobem musíte použít přesměrování <<<
(řetězec zde) jako:
var=$(cut -c-5 <<< "$line")
Všimněte si použití var=$(command)
výraz namísto id= cut -c-5 $line
. Toto je způsob, jak uložit příkaz do proměnné.
Použijte také /bin/bash
místo /bin/sh
aby to fungovalo.
Úplný kód, který mi funguje:
#!/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"
No, je to jednořádkový cut -c-5 sample.txt
. Příklad:
$ cut -c-5 sample.txt
31113
31114
31111
31112
Odtamtud jej můžete převést na jakýkoli jiný skript nebo příkaz:
$ cut -c-5 sample.txt | while read line; do echo Hello $line; done
Hello 31113
Hello 31114
Hello 31111
Hello 31112