簡體   English   中英

使用 dos2unix 將 windows 文件轉換為 unix 的 shell 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM