最近在windows上编辑一些shell脚本后上传到交换机框体上,
但这些shell脚本无法执行,每一行结尾都有'^M',同时框体上又没有dos2unix工具,
这么多脚本也不可能一行一行来修改,于是就自己写了一个脚本来把当前目录下所有文件中的'^M'去掉。
命名为dos2unix.sh
#!/bin/sh
if [ ! -d $1 ]; then
echo -e "Dir '$1' is not exist!\n"
exit 0
fi
cd $1 && ls -l
echo -e
filename=`ls`
for f in ${filename};do
echo "Show current dir's files:${f}"
if [ -f ${f} ]; then
tr -d "\015" <${f}> ${f}.tmp
mv ${f}.tmp ${f}
fi
done
echo -e "All files changed!\n"
执行
./dos2unix.sh dir
如果只是修改一个文件的话,用这个脚本吧
命名为d2u.sh
#!/bin/sh
tr -d "\015" <$1> n$1
mv n$1 $1
执行
./d2u.sh file