阅读背景:

Shell脚本:递归目录下所有文件由DOS/Windows格式转换为Unix/Linux格式_蛙鳜鸡鹳狸猿

来源:互联网 
#!/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.
        # 
#!/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了。


: OS directory path local path="
#!/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了。


" 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 "
#!/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了。


" #!/usr/bin/env bash # Author : 蛙鳜鸡鹳狸猿 # crea



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: