bashファイルをiso-latin-1
(別名iso-8859-1
)からutf-8
。そして、エラーが発生しやすいファイル名の形式を変更する機会があります。
そのファイルの名前は次のとおりです。
tree Dados/Jan/
Dados/Jan/
├── 201301_Licitacoes
│ ├── 201301_EmpenhosRelacionados.csv
│ ├── 201301_ItemLicitaЗ╞o.csv
│ ├── 201301_LicitaЗ╞o.csv
│ └── 201301_ParticipantesLicitaЗ╞o.csv
├── 201401_Licitacoes
│ ├── 201401_EmpenhosRelacionados.csv
│ ├── 201401_ItemLicitaЗ╞o.csv
│ ├── 201401_LicitaЗ╞o.csv
│ └── 201401_ParticipantesLicitaЗ╞o.csv
├── 201501_Licitacoes
│ ├── 201501_EmpenhosRelacionados.csv
│ ├── 201501_ItemLicitaЗ╞o.csv
│ ├── 201501_LicitaЗ╞o.csv
│ └── 201501_ParticipantesLicitaЗ╞o.csv
├── 201601_Licitacoes
│ ├── 201601_EmpenhosRelacionados.csv
│ ├── 201601_ItemLicitaЗ╞o.csv
│ ├── 201601_LicitaЗ╞o.csv
│ └── 201601_ParticipantesLicitaЗ╞o.csv
(...)
私は次のことをしています:
find Dados/Jan/ -maxdepth 2 -name '*.csv' -exec sh -c 'conv {}' \;
その中にはconv
次のスクリプトがあります。
#!/usr/bin/env bash
## adapted from https://stackoverflow.com/questions/62918711/convert-multiple-csv-files-to-utf-8-encoding-using-a-script-windows-command-prom
for file in $@; do
iconv -f ISO-8859-1 UTF-8 <"$file" >"$file".tmp &&
mv "$file.tmp" "$file"
done
この過程で 'を削除したいと思います。З╞o「ファイルを解凍すると、ファイル名にテキストが表示されます(誰かがこれを使用した可能性があります)」~「ファイル名など)。
ベストアンサー1
mv
ファイルを最終ターゲットに転送するときは、シェル「パラメータ拡張」を使用してください。良い
mv "$file.tmp" "${file//З╞o}"
いつも同じ文字順ですか?