应用场景:

在办公中,有可能存在,某些命令脚本使用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. Java开发者或许应该经常去看看的网站?...

    Java开发者或许应该经常去看看的网站?...Google top3 1.Oracle Technology Network for Java Developers | Oracle Technolo ...

  2. Hearbeat 工作原理

    Hearbeat 原理 heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路, ...

  3. Linux服务器注意事项

    1.在Linux新建一个tomcat目录,执行里面的文件运行的时候 会出现权限不足的提示?解决办法:这是因为新建的文件夹,对于可执行脚本,必须先授权,进入bin目录后,执行命令  chmod 764 ...

  4. Spring中为什么实体类不用注入

    要理解为什么不用注入,首先就清楚注入的目的是什么?如果不注入,在程序中要使用某个类对象的方法,则需要去new一个对象.然后我们调用其中的方法,众所周知"程序=算法+数据".不失一般 ...

  5. sqoop1.4.6 全量导入与增量导入 与使用技巧

    全量导入: sqoop import --connect jdbc:mysql://192.168.0.144:3306/db_blog --username root --password 1234 ...

  6. java assert的使用并深入解析Java的assertion

    java assert的使用并深入解析Java的assertion 分类: java2012-12-05 13:32 2020人阅读 评论(0) 收藏 举报 原文出处:http://blog.csdn ...

  7. Python之Django总结

    一.Django 总结django知识点   一.视图函数:     请求对象-----------request:           1.HttpRequest.body:         请求原 ...

  8. windows下pip安装包权限的问题

    md哔了狗了,把scipy弄崩了,还顺带把numpy弄崩了... 然后安装包一直权限不允许: 于是按照下面这篇博客以管理员运行cmd,结果还是没卵用 http://www.cnblogs.com/li ...

  9. 0.00-050613_zc

    1. ROM bios --> 启动盘第一个扇区(此处内容为boot) 加载到 内存位置0x7C00(31KB) --> 执行权转移(也就相当于跳转) boot程序主要功能:把 软盘/映像 ...

  10. [Kafka] - Kafka内核理解:分布式机制

    一个Topic中的所有数据分布式的存储在kafka集群的所有机器(broker)上,以分区(partition)的的形式进行数据存储:每个分区允许存在备份数据/备份分区(存储在同一kafka集群的其它 ...