O {}
é substituído pelo caminho completo. Isso funciona no primeiro comando, porque lá o caminho é apenas ./file.csv
. No segundo comando, o nome é ./01_delimiters/file.csv
, então ele tenta criar ./02_encoding/./01_delimiters/file.csv
.
Você pode
-
mkdir /02_encoding/./01_delimiters
, seus arquivos de saída serão colocados nesse diretório. - Combine as duas operações em uma só depois de verificar se a primeira está funcionando. Mesmo que algo esteja errado, você não excluiu os arquivos originais.
-
Altere o segundo comando para
(cd ./01_delimiters; find . -maxdepth 1 -type f -name '*.csv' -exec bash -c 'iconv -f utf-8 -t utf-16BE "{}" > ../02_encoding/"{}"' \; )
-
Use apenas o shell
for file in *.csv; do sed -e "s/|/¦/g" -e "s/╬/|/g" "$file" > "./01_delimiters/$file" iconv -f utf-8 -t utf-16BE "./01_delimiters/$file" > "./02_encoding/$file" done