php dos unix,dos2unix命令、unix2dos命令

使用Cygwin环境工具,进入它的cygwin系统,初始化配置(./configure)项目时,有如下报错:

$’\r’: 未找到命令

未预期的符号 `$’do\r” 附近有语法错误

所以,在Cygwin环境中安装 dos2unix 工具包来转码。

dos2unix的使用方法,unix2dos的使用方法

dos2unix命令

$ dos2unix -h

用法:dos2unix [选项] [文件 ...] [-n 输入文件 输出文件 ...]

--allow-chown 允许修改文件所有者

-ascii 只转换换行符(默认)

-iso 在 DOS 和 ISO-8859-1 字符集之间转换

-1252 使用Windows 1252 编码页(西欧)

-437 使用DOS 437 编码页(US)(默认)

-850 使用DOS 850 编码页(西欧)

-860 使用DOS 860 编码页(葡萄牙)

-863 使用DOS 863 编码页(加拿大法語)

-865 使用DOS 865 编码页(北欧)

-7 转换8 位字符到7 位空间

-b, --keep-bom 保留UTF-8 BOM头

-c, --convmode 转换模式

convmode ascii、7bit、iso或mac,默认为ascii

-f, --force 强制转换二进制文件

-h, --help 显示本说明文字

-i, --info[=FLAGS] 显示文件信息

文件 ... 需要分析的文件

-k, --keepdate 保留输出文件时间

-L, --license 显示软件协议

-l, --newline 加入额外的换行符

-m, --add-bom 添加UTF-8 BOM头(默认为UTF-8)

-n, --newfile 写入新文件

infile 新文件模式中的原始文件

outfile 新文件模式中的输出文件

--no-allow-chown 不允许修改文件所有者(默认选项)

-o, --oldfile 写入原文件(默认)

file ... 旧文件模式中要转换的文件

-q, --quiet 安静模式,不显示所有警告

-r, --remove-bom 移除UTF-8 BOM头(默认)

-s, --safe 跳过二进制文件(默认)

-u, --keep-utf16 保留UTF-16编码

-ul, --assume-utf16le 假定输入文件格式为UTF-16LE

-ub, --assume-utf16be 假定输入文件格式为UTF-16BE

-v, --verbose 显示更多信息

-F, --follow-symlink 根据符号链接转换其目标文件

-R, --replace-symlink 取代符号链接为转换后的文件

(原链接目标文件保持不变)

-S, --skip-symlink 保持符号链接及其目标不变(默认)

-V, --version 显示版本号

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

$dos2unix-h

用法:dos2unix[选项][文件...][-n输入文件输出文件...]

--allow-chown允许修改文件所有者

-ascii只转换换行符(默认)

-iso在DOS和ISO-8859-1字符集之间转换

-1252使用Windows1252编码页(西欧)

-437使用DOS437编码页(US)(默认)

-850使用DOS850编码页(西欧)

-860使用DOS860编码页(葡萄牙)

-863使用DOS863编码页(加拿大法語)

-865使用DOS865编码页(北欧)

-7转换8位字符到7位空间

-b,--keep-bom保留UTF-8BOM头

-c,--convmode转换模式

convmodeascii、7bit、iso或mac,默认为ascii

-f,--force强制转换二进制文件

-h,--help显示本说明文字

-i,--info[=FLAGS]显示文件信息

文件...需要分析的文件

-k,--keepdate保留输出文件时间

-L,--license显示软件协议

-l,--newline加入额外的换行符

-m,--add-bom添加UTF-8BOM头(默认为UTF-8)

-n,--newfile写入新文件

infile新文件模式中的原始文件

outfile新文件模式中的输出文件

--no-allow-chown不允许修改文件所有者(默认选项)

-o,--oldfile写入原文件(默认)

file...旧文件模式中要转换的文件

-q,--quiet安静模式,不显示所有警告

-r,--remove-bom移除UTF-8BOM头(默认)

-s,--safe跳过二进制文件(默认)

-u,--keep-utf16保留UTF-16编码

-ul,--assume-utf16le假定输入文件格式为UTF-16LE

-ub,--assume-utf16be假定输入文件格式为UTF-16BE

-v,--verbose显示更多信息

-F,--follow-symlink根据符号链接转换其目标文件

-R,--replace-symlink取代符号链接为转换后的文件

(原链接目标文件保持不变)

-S,--skip-symlink保持符号链接及其目标不变(默认)

-V,--version显示版本号

转换./configure文件,

$ dos2unix ../configure

0

$dos2unix../configure

转换./configure文件并另存为./configure.sh

$ dos2unix -n ./configure ./configure.sh

0

$dos2unix-n./configure./configure.sh

unix2dos命令

$ unix2dos -h

用法:unix2dos [选项] [文件 ...] [-n 输入文件 输出文件 ...]

--allow-chown 允许修改文件所有者

-ascii 只转换换行符(默认)

-iso 在 DOS 和 ISO-8859-1 字符集之间转换

-1252 使用Windows 1252 编码页(西欧)

-437 使用DOS 437 编码页(US)(默认)

-850 使用DOS 850 编码页(西欧)

-860 使用DOS 860 编码页(葡萄牙)

-863 使用DOS 863 编码页(加拿大法語)

-865 使用DOS 865 编码页(北欧)

-7 转换8 位字符到7 位空间

-b, --keep-bom 保留UTF-8 BOM头(默认)

-c, --convmode 转换模式

convmode ascii、7bit、iso或mac,默认为ascii

-f, --force 强制转换二进制文件

-h, --help 显示本说明文字

-i, --info[=FLAGS] 显示文件信息

文件 ... 需要分析的文件

-k, --keepdate 保留输出文件时间

-L, --license 显示软件协议

-l, --newline 加入额外的换行符

-m, --add-bom 添加UTF-8 BOM头(默认为UTF-8)

-n, --newfile 写入新文件

infile 新文件模式中的原始文件

outfile 新文件模式中的输出文件

--no-allow-chown 不允许修改文件所有者(默认选项)

-o, --oldfile 写入原文件(默认)

file ... 旧文件模式中要转换的文件

-q, --quiet 安静模式,不显示所有警告

-r, --remove-bom 移除UTF-8 BOM头

-s, --safe 跳过二进制文件(默认)

-u, --keep-utf16 保留UTF-16编码

-ul, --assume-utf16le 假定输入文件格式为UTF-16LE

-ub, --assume-utf16be 假定输入文件格式为UTF-16BE

-v, --verbose 显示更多信息

-F, --follow-symlink 根据符号链接转换其目标文件

-R, --replace-symlink 取代符号链接为转换后的文件

(原链接目标文件保持不变)

-S, --skip-symlink 保持符号链接及其目标不变(默认)

-V, --version 显示版本号

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

$unix2dos-h

用法:unix2dos[选项][文件...][-n输入文件输出文件...]

--allow-chown允许修改文件所有者

-ascii只转换换行符(默认)

-iso在DOS和ISO-8859-1字符集之间转换

-1252使用Windows1252编码页(西欧)

-437使用DOS437编码页(US)(默认)

-850使用DOS850编码页(西欧)

-860使用DOS860编码页(葡萄牙)

-863使用DOS863编码页(加拿大法語)

-865使用DOS865编码页(北欧)

-7转换8位字符到7位空间

-b,--keep-bom保留UTF-8BOM头(默认)

-c,--convmode转换模式

convmodeascii、7bit、iso或mac,默认为ascii

-f,--force强制转换二进制文件

-h,--help显示本说明文字

-i,--info[=FLAGS]显示文件信息

文件...需要分析的文件

-k,--keepdate保留输出文件时间

-L,--license显示软件协议

-l,--newline加入额外的换行符

-m,--add-bom添加UTF-8BOM头(默认为UTF-8)

-n,--newfile写入新文件

infile新文件模式中的原始文件

outfile新文件模式中的输出文件

--no-allow-chown不允许修改文件所有者(默认选项)

-o,--oldfile写入原文件(默认)

file...旧文件模式中要转换的文件

-q,--quiet安静模式,不显示所有警告

-r,--remove-bom移除UTF-8BOM头

-s,--safe跳过二进制文件(默认)

-u,--keep-utf16保留UTF-16编码

-ul,--assume-utf16le假定输入文件格式为UTF-16LE

-ub,--assume-utf16be假定输入文件格式为UTF-16BE

-v,--verbose显示更多信息

-F,--follow-symlink根据符号链接转换其目标文件

-R,--replace-symlink取代符号链接为转换后的文件

(原链接目标文件保持不变)

-S,--skip-symlink保持符号链接及其目标不变(默认)

-V,--version显示版本号

综合使用方法:

Linux本身提供了dos2unix和unix2dos这两个命令来实现windows和linux文件的转换,

但是。dos2unix和unix2dos本身没有提供递归也就是批量修改的方式,这样一来我们就需要借助于xargs命令了

xargs的命令的作用就是将参数列表转换成小块分段传递给其他命令,借助于xargs,我们可以很简单的实现批量替换;

这里假设我需要替换的文件所在目录为 public/components目录下。

如果批量替换public/components 目录下的所有文件使用如下命令:

find public/components/ -name "*" | xargs dos2unix

0

findpublic/components/-name"*"|xargsdos2unix

其中,”*”号表示所有文件。

要更改文件格式的后缀为.py ,那么借助于下面的命令就可以轻松的实现批量替换格式:

批量替换为linux文件格式:

sudo find public/components/ -name "*.py" | xargs dos2unix

0

sudofindpublic/components/-name"*.py"|xargsdos2unix

批量替换为dos文件格式:

sudo find public/components/ -name "*.py" | xargs unix2dos

0

sudofindpublic/components/-name"*.py"|xargsunix2dos

优点:批量替换,工作量小, 总的来说,方法二借助于 管道符和xargs来实现的批量命令,将方法二修改一下就可以实现很多的批量操作,

比如:

1.批量删除整个linux系统中后缀为.tmp的文件;那么命令可以这么写:

sudo find /home/test -name "*.tmp" | xargs rm -f

0

sudofind/home/test-name"*.tmp"|xargsrm-f

2.删除整个linux系统中与apache相关的文件:

sudo find /home/test -name "*apache" | xargs rm -rf

0

sudofind/home/test-name"*apache"|xargsrm-rf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值