unix2dos
C++ ソース コード ファイルのグループで使用しようとしています。基本的に、unix2dos
LF を CRLF に変換します。
私は単に次のことを行うことができ、それは私が望むことを行います:
#!/bin/sh
find . -type f \( -name "*.h" -o -name "*.cpp" \) -exec unix2dos {}\;
しかし、CRLF行末が既にある場合、ファイルを変更したくありません。そのため、スクリプトを変更する必要があります。
#!/bin/sh
for i in `find . -type f \( -name "*.h" -o -name "*.cpp" \)`
do
LINE=`file $i | grep CRLF`
if [ $? -eq 1 ]
then
unix2dos $i
fi
done
スペースが正しく処理されていないため、for
ループを使用するのは少し難しいようです。ファイル名にスペースが含まれている場合、シェルは分割された文字列に誤って unix2dos を適用しようとします。
問題を解決するにはどうすればよいですか?