批量转换Windows / DOS文件到Unix的最佳方法是什么?

时间:2010-03-30 18:52:19

标签: unix batch-file dos

基本上我们需要更改一组文件的行尾字符。

有没有办法用批处理文件来完成这个?有免费软件实用程序吗?

4 个答案:

答案 0 :(得分:8)

答案 1 :(得分:2)

可以用更短的命令来完成。

    find ./ -type f | xargs -I {} dos2unix {}

答案 2 :(得分:0)

您应该可以将trxargs结合使用来执行此操作。

至少在Unix方面,这应该是最简单的方法。但是,我尝试过十年前在Windows机器上这样做了一次,但发现Windows版tr正在将我的终结器转换回Windows格式。 :-(但是,我认为在干预十年中,这些工具变得越来越聪明。

答案 3 :(得分:0)

将find与dos2unix / fromdos结合使用以转换文件目录(不包括二进制文件)。

只需将其添加到.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查找您是否安装了该实用程序,并选择一个使用

查找生成所有文件的列表,然后文件在每个文本文件后附加“:ASCII文本”。

最后,grep选择文本文件,Cut删除':'之后的所有文本,xargs为DOS2UNIX创建一个大命令行。