Se você alterar o FS (separador de campo) no awk, poderá alcançá-lo.
awk -F: '{ print "/mnt/dir1/dir2/"$1 }' CT.txt
Eu tenho um CT.txt
com os dados de entrada abaixo.
CT.txt:
test testing test 1
E com o script abaixo:
#!/bin/bash
for CITY in $(cat /home/user/CT.txt)
do
FILES=/mnt/dir1/dir2/$CITY/*
echo $FILES
Me dando saída da seguinte forma:
/mnt/dir1/dir2/test
/mnt/dir1/dir2/testing
/mnt/dir1/dir2/test/*
/mnt/dir1/dir2/1/*
onde a saída deve ser:
/mnt/dir1/dir2/test
/mnt/dir1/dir2/testing
/mnt/dir1/dir2/test 1
Como fazer com que o arquivo CT.txt
leia com espaço entre o teste 1 .
Se você alterar o FS (separador de campo) no awk, poderá alcançá-lo.
awk -F: '{ print "/mnt/dir1/dir2/"$1 }' CT.txt
Supondo que o CT.txt tenha entradas uma / linha, o loop while
é mais adequado à sua tarefa:
while IFS= read -r CITY; do
FILES=/mnt/dir1/dir2/$CITY
echo "$FILES"/*
done < /home/user/CT.txt
O for
loop é inadequado para isso, mas ainda pode funcionar:
# set the input field separator to newline and disable globbing
IFS=$'\n';set -f
for CITY in $(< /home/user/CT.txt); do
FILES=/mnt/dir1/dir2/$CITY
echo "$FILES"/*
done