[英]shell script to convert windows file to unix using dos2unix
我正在編寫一個簡單的 shell 腳本,以利用dos2unix
命令將 Windows 格式的文件在到達我的文件夾時將其轉換為 Unix 格式。
我曾經在腳本中使用iconv
並將其自動化以將一種編碼轉換為另一種編碼。 但現在我需要使用dos2unix
而不是iconv
。
我不希望原始文件被覆蓋(它必須存檔在archive
文件夾中)。 這對iconv
很簡單; 我怎樣才能對dos2unix
做同樣的事情?
這是我的腳本:
cd /myfolder/storage
filearrival_dir= /myfolder/storage
filearchive_dir=/myfolder/storage/archive
cd $filearrival_dir
echo " $filearrival_dir"
for file in File_October*.txt
do
iconv -f UTF16 -t UTF8 -o "$file.new" "$file" &&
mv -f "$file.new" "$file".`date +"%C%y%m%d"`.txt_conv &&
mv $file $filearchive_dir/$file
done
以上查找與File_Oct*.txt
匹配的文件,轉換為所需的編碼並在末尾使用時間戳和_conv
重命名。 此腳本還將原始文件移動到存檔中。
如何用dos2unix
替換上述腳本中的iconv
並將文件存檔,然后像我在這里所做的那樣完成其余的工作?
您可以使用tr
“模擬” dos2unix
。
tr -d '\\015' infile > outfile
如果這只是關於使用dos2unix
所以它不會覆蓋原始文件,只需使用
-n infile outfile
我記得dos2unix
默認寫入 UTF-8,因此就編碼而言,您可能不必采取任何特殊操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.