应用场景:

在办公中,有可能存在,某些命令脚本使用windows下的文本编辑器进行编写

当放到测试环境的Linux中时,运行报错  

需要使用的软件:xxd hexdump  dos2unix

1、运行windows上编写好的sh脚本

[root@hlrgm ~]# bash test.sh
test.sh: line 2: $'\r': command not found
'f: invalid option -- '
Try 'df --help' for more information.
test.sh: line 4: $'\r': command not found
's: invalid option -- '
Try 'ls --help' for more information.
test.sh: line 6: $'\r': command not found  

2、查看sh脚本

[root@hlrgm ~]# cat test.sh
#!/bin/bash df -h ls -l
  

3、查看文本的二进制

[root@hlrgm ~]# xxd test.sh
0000000: 2321 2f62 696e 2f62 6173 680d 0a0d 0a64 #!/bin/bash....d
0000010: 6620 2d68 0d0a 0d0a 6c73 202d 6c0d 0a0d f -h....ls -l...
0000020: 0a .  

4、查看文本的十六进制

[root@hlrgm ~]# hexdump test.sh
0000000 2123 622f 6e69 622f 7361 0d68 0d0a 640a
0000010 2066 682d 0a0d 0a0d 736c 2d20 0d6c 0d0a
0000020 000a
0000021  

5、使用dos2unix修改文本

注意:dos2unix需要安装后使用,默认系统未安装

[root@hlrgm ~]# dos2unix test.sh
dos2unix: converting file test.sh to Unix format ...  

6、查看修改后文件的二进制和十六进制

# 二进制
[root@hlrgm ~]# xxd test.sh
0000000: 2321 2f62 696e 2f62 6173 680a 0a64 6620 #!/bin/bash..df
0000010: 2d68 0a0a 6c73 202d 6c0a 0a -h..ls -l.. # 十六进制
0000000 2123 622f 6e69 622f 7361 0a68 640a 2066
0000010 682d 0a0a 736c 2d20 0a6c 000a
000001b  

7、对比

windows:二进制下换行符号:0d0a

linxu:二进制下换行符号:0a  

修改windows文件的换行符的更多相关文章

  1. Linux文件和windows文件在 换行符的区别

    Linux或Unix文件,和windows文件,在来回处理时,如果不注意 换行符的区别,可能导致程序错误!!!深刻的教训.... 在早期的打印机时代,开始新的一行要占用两个字符的时间.如果到了一行的结 ...

  2. linux下与windows下的换行符

    [原文有些许错误,已作了修改] 回车符号和换行符号产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别.在计算机还没有出现之前,有一种叫做电传 ...

  3. python tips:文件读取——换行符的问题

    问题:在windows系统中,换行的符号是'\r\n'.python在读文件的时候为了系统兼容,会默认把'\r','n','\r\n'都视作换行.但是在windows文件中,可能在同一行中同时存在'\ ...

  4. windows与linux换行符

    我一次linux上写的脚本,利用vim进行脚本编写,然后下载下来在nodepad++上面打开,在nodepad上面新建了一个文件将原来文件内容复制过去,保存后下载复制文件在linux上面进行运行,发现 ...

  5. WINDOWS和UNIX换行符的理解

    # WINDOWS和UNIX换行符的理解 **file1.txt**17.143.161.37   其他    美国54.163.255.40   其他    美国 弗吉尼亚州 亚马逊公司 **[ro ...

  6. python处理文件的换行符

    我们知道在Windows平台下的换行符是\r\n,而在linux下的换行符是\n.现在写一个简单程序来测试python是如何处理这些换行符的. 准备文件data.txt,该文件在Windows平台下编 ...

  7. ****使用ftp软件上传下载php文件时换行符丢失bug

    在使用ftp软件上传下载php源文件时,我们偶尔会发现在本地windows下notepad++编辑器写好的php文件,在使用ftp上传到linux服务器后,php文件的换行符全部丢失了,导致php文件 ...

  8. C语言中以文本方式读写文件时换行符转换的注意事项

    我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...

  9. 记一次错误排查,主要问题是跨平台文件中换行符(CRLF, LF)和垃圾字符( Caret Notation)

    笔者测试SPEC14的workload的时候,需要自定义workload,又需要在Windows和Linux平台上都要测试,所以就遇到了这么个问题:测试工具报错,但是报出来的错误信息又跟错误对不上. ...

随机推荐

  1. gstreamer交叉编译

    gstreamer(0.10.36) ./configure --build=i686-linux --host=arm-linux --prefix=/opt/EmbedSky/gcc-4.6.2- ...

  2. 数据库自动增长id下一次的值

    mysql SELECT auto_increment FROM information_schema.`TABLES` WHERE TABLE_SCHEMA='my_db_name' AND TAB ...

  3. 管道和xargs的区别

    1.概念 管道:将前一个命令的标准输出作为下一个命令的标准输入. xargs:将标准输入传递给下一个命令,作为其参数.(和管道连用)2.区别 2.区别 1:ls|cat是将ls的结果作为一个文件fil ...

  4. 斯坦福机器学习视频笔记 Week4 & Week5 神经网络 Neural Networks

    神经网络是一种受大脑工作原理启发的模式. 它在许多应用中广泛使用:当您的手机解释并理解您的语音命令时,很可能是神经网络正在帮助理解您的语音; 当您兑现支票时,自动读取数字的机器也使用神经网络. Non ...

  5. NLP学习常用的网页链接

    [2016.7.5] 这是以前学习的时候整理的,放到博客里面,以后再有的话会更新~ 1.一个国外的学者维护的博客,介绍NLP [链接](http://nlpers.blogspot.jp/) 2.北京 ...

  6. BZOJ4197 / UOJ129 [Noi2015]寿司晚宴

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  7. sshfs的挂载与卸载

    在CentOS中 sshfs的使用依赖EPEL(只安装sshfs不会出错,但是却无法使用) 挂载 安装EPEL rpm -i https://dl.fedoraproject.org/pub/epel ...

  8. Ant入门

    一.Ant介绍 Ant是Java的生成工具,是Apache的核心项目:直接在apache官网下载即可: Ant类似于Unix中的Make工具,都是用来编译.生成: Ant是跨平台的,而Make不能: ...

  9. 用intellij idea 写第一个Java程序

    Java小白,还不怎么会eclipse,只会在命令行用javac编译并java运行编译后的类. 英文还不好orz 发现创建项目后,能build但就是不能run... 找了半天教程没找着,去官网溜了一下 ...

  10. python3 使用pymysql

    #! /usr/bin/env python3 # coding = utf-8 import random import pymysql # 连接数据库函数 def connDB(data): co ...