模拟dos2unix: remove ‘^M‘ using shell script

最近在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值