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