Eu tenho CRLF
não apenas no script, mas também no list.txt
. Depois que mudei para LF
no shell e list.txt
, o problema foi resolvido.
Eu tenho abaixo o script:
#!/bin/bash
cat list.txt | while IFS='' read -r a;
#Remove all illegal characters
do
a=${a// /_}
a=${a// /_}
a=${a//\'/}
a=${a//-/_}
a=${a,,}
filepath="/applications/"
b=$filepath$a".csv"
echo $b
done
Os resultados esperados devem ser:
/applications/ahold_region
/applications/alb_sfy_region
/applications/awg_census_region
/applications/bjs_total_ta
/applications/delhaize_region
/applications/dollar_value_area
Os resultados reais são:
.csvlications/ahold_region
.csvlications/alb_sfy_region
.csvlications/awg_census_region
.csvlications/bjs_total_ta
.csvlications/delhaize_region
.csvlications/dollar_value_area
Parece que o bash está usando .csv
para substituir os primeiros 4 caracteres em $filepath
.
Como gerar os resultados esperados?
Eu tenho CRLF
não apenas no script, mas também no list.txt
. Depois que mudei para LF
no shell e list.txt
, o problema foi resolvido.