Shell脚本:递归目录下所有文件由DOS/Windows格式转换为Unix/Linux格式

本文介绍了一个Shell脚本,用于将DOS/Mac文本文件格式转换为Unix格式。通过递归遍历目录,使用`dos2unix`工具进行转换,解决了因操作系统间文件格式差异导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/env bash
# Author    : 蛙鳜鸡鹳狸猿
# create_ts : 2019-06-06
# program   : Convert DOS/Mac text file format into Unix


function dos_to_unix() {
    # Convert DOS/Mac text file format into Unix under built-in `dos2unix` handler.
        # $1: OS directory path
    local path="$1"
    local path=${path%/}
    local IFS=$'\n'
    # shellcheck disable=SC2045
    for obj in $(ls "${path}")
    do
        if [[ -d "${path}/${obj}" ]]; then
            dos_to_unix "${path}/${obj}"
        else
            dos2unix "${path}/${obj}"
        fi
    done
}


dos_to_unix "$1"

首先遍历目录下所有文件(夹),判断如果为文件夹就继续递归调用,如果不是文件夹,就调用`dos2unix`程序执行文件格式转换。如果系统没有安装`dos2unix`,手动安装一下即可,视不同系统分支可以直接用超级命令(apt / yum)安装。将脚本写入一个Shell文件,然后从Windows系统上拿过来的代码包执行时遇到“\r”等因为操作系统之间文件格式问题导致的报错时,执行一下该Shell脚本,后面将要进行格式转换的文件/文件夹名字作为参数传入,跑一下就OK了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值