Ich würde einige kleine Änderungen an Ihrem Skript vornehmen. Verwenden ls
Sie sie nicht zuerst in Ihrer for
Schleife, sondern verwenden Sie sie, *.csv
weil der Glob nicht druckbare Zeichen und Leerzeichen in Dateinamen verarbeitet. Anstelle von seds Inplace-Weiterleitung zu $file.bak
. Wenn strings
auf Ihrem System verfügbar ist, ersetzen Sie es sed
mit strings
. Denken Sie immer daran, Variablen zu zitieren.
for file in *.csv do sed 's/^M//' "$file" > "$.bak" #strings "$file" > "$.bak" iconv -f -iso-8859-1 -t utf8 "$.bak" > "$file" rm "$.bak" done