Você pode percorrer os arquivos .txt
, alterar a codificação, salvar a saída no arquivo .wiki
do mesmo nome usando a opção -o
de iconv
e, se tiver êxito, remover o arquivo .txt
relevante:
shopt -s globstar ## Enables recursive glob matching
for f in **/*.txt; do
iconv -f gbk -t utf8 -o "${f%.txt}".wiki "$f" && rm "$f"
done
Advertência:
Se o arquivo de entrada não estiver em codificação de origem ou já estiver na codificação de destino, iconv
retornará true sem executar nenhuma operação, portanto, o arquivo .wiki
não será criado e o arquivo .txt
será removido .
Para contornar isso, você pode salvar o STDOUT após a conversão em uma variável e, se a variável não estiver vazia, salvar a saída no arquivo .wiki
e remover o arquivo txt
:
shopt -s globstar ## Enables recursive glob matching
for f in **/*.txt; do
out="$(iconv -f gbk -t utf8 "$f")"
[[ -n $out ]] && echo "$out" >"${f%.txt}".wiki && rm "$f"
done