我正在尝试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
循环似乎有点难以使用。当文件名包含空格时,shell 会尝试在拆分的字符串上错误地应用 unix2dos。
我该如何解决这个问题?