Em ambos os seus scripts, você usa cut
em um arquivo cujo nome é lido no arquivo viagens.txt
. Você deve obter um erro No such file or directory
dos dois scripts (lembre-se de incluir sempre erros na pergunta).
Em vez disso:
#!/bin/bash
fich=viagens.txt
if [ ! -f "$fich" ]; then
echo "Ficheiro nao existe" >&2
exit 1
fi
cut -d : -f 2 <"$fich" |
while read data; do
printf 'Data read: %s\n' "$data"
done
O cut -d : -f 2
retornará o segundo campo :
-delimited da entrada para cut
.
Ou, se você quiser apenas enviar a coluna:
#!/bin/bash
fich=viagens.txt
if [ ! -f "$fich" ]; then
echo "Ficheiro nao existe" >&2
exit 1
fi
cut -d : -f 2 <"$fich"