基本上我们需要为一组文件更改行尾字符。
有没有批处理文件的方法实现这个?是否有免费的工具可用?
基本上我们需要为一组文件更改行尾字符。
有没有批处理文件的方法实现这个?是否有免费的工具可用?
find ./ -type f | xargs -I {} dos2unix {}
使用find和dos2unix/fromdos结合起来,将一个文件夹中的文件转换为Unix格式(不包括二进制文件)。
只需将以下内容添加到您的.bashrc文件中:
DOS2UNIX=$(which fromdos || which dos2unix) \
|| echo "*** Please install fromdos or dos2unix"
function finddos2unix {
# Usage: finddos2unix Directory
find $1 -type f -exec file {} \; | grep " text" | cut -d ':' -f1 | xargs $DOS2UNIX
}
首先,DOS2UNIX会查找您是否安装了该实用程序,并选择要使用的实用程序。
Find会列出所有文件的列表,然后在每个文本文件后面附加“:ASCII文本”。
最后,grep选取文本文件,Cut删除“:”后面的所有文本,xargs将其组合成一个大的命令行,供DOS2UNIX使用。
你应该能够结合使用tr
和xargs
来完成这个任务。
至少在Unix方面,这应该是最简单的方法。然而,我曾经在十多年前尝试在Windows上这样做,但发现Windows版本的tr
会将我的终止符转换回Windows格式。 :-( 但是,我认为在过去的十年中,工具已经变得更加智能了。