windows编辑文本和unix编辑文本的回车符问题

  我们的开发环境一般都使用windows操作系统,而测试环境和线上环境一般使用linux。windows下编辑的shell脚本,上传到windows下会发生错误。出现两种情况:
  1、BOM头问题,前面有介绍,不再继续
  2、回车符问题。 主要是在windows操作系统下,采用的编辑器(windows自带的文本编辑器或者zend studio)编辑shell脚本,在处理换行的时候,一般会附加一个回车符,在linux环境下运行,这个回车符会影响脚本运行,返回语法错误。

  我们看一下
  首先,我们在windows下编辑一个文本(test00.php),输入下面的内容,之后上传到linux服务器

  

  我们用vi打开看一下,似乎没有问题

  我们再在linux服务器上直接写一个文件(test11.php)输入同样的内容。但是对比一下,我们可以清晰的看见两个文件的大小是不一样的

[[email protected] test]# ll test*
-rw-rw-r-- 1 root  root     58 Mar 19 18:03 test00.php
-rw-r--r-- 1 root  root     56 Mar 19 18:04 test11.php

使用xxd去看一下编码情况,做一下对比:

windows下 linux下

0000000: 6974 2069 7320 6120 7465 7374 210d 0a69  it is a test!..i
0000010: 7420 6973 2061 2074 6573 7421 0d0a 6974  t is a test!..it
0000020: 2069 7320 6120 7465 7374 210d 0a69 7420   is a test!..it
0000030: 6973 2061 2074 6573 7421                 is a test!

0000000: 6974 2069 7320 6120 7465 7374 210a 6974  it is a test!.it
0000010: 2069 7320 6120 7465 7374 210a 6974 2069   is a test!.it i
0000020: 7320 6120 7465 7374 210a 6974 2069 7320  s a test!.it is
0000030: 6120 7465 7374 210a                      a test!.

我们清晰的看到,windows下编辑的文件上传到linux服务器后,每一次换行符前面(0a)都存在回车符(0d)。

那么怎么解决这个问题呢
方法很多,可以使用dos2unix filename命令解决即可

[[email protected] test]# dos2unix test00.php
dos2unix: converting file test00.php to UNIX format ...
[[email protected] test]# xxd test00.php
0000000: 6974 2069 7320 6120 7465 7374 210a 6974  it is a test!.it
0000010: 2069 7320 6120 7465 7374 210a 6974 2069   is a test!.it i
0000020: 7320 6120 7465 7374 210a 6974 2069 7320  s a test!.it is
0000030: 6120 7465 7374 21                        a test!
[[email protected] test]# 
时间: 2024-10-08 10:19:33

windows编辑文本和unix编辑文本的回车符问题的相关文章

PDF文档如何编辑,怎样设置PDF文本字体

PDF文件怎么编辑,如何设置字体?很多人都会编辑word.ppt这类文档,但是对于PDF格式的文档很少有人知道怎样去编辑修改,下面就来说说怎样编辑PDF,设置文本的字体. 在PDF阅读器中无法对文档内容进行编辑修改,所以要先用PDF编辑器来打开文档. 打开PDF文档后点击编辑内容工具,文档内容就可以进行编辑操作了. 设置字体,对文本格式进行修改,需要打开属性窗格.如果没有该窗格,可以选择"视图"-"其他窗格"-"属性窗格"来打开. 选择文本内容后

HTML:<input type="text">文本框不可编辑的方式

1.<input type="text" name="name" value="姓名" disabled /> 该方式显示的文本框内容“姓名”呈灰色显示. 2.<input type="text" name="name" value="姓名" readonly="readonly" /> 文本框正常显示,只是无法获得光标,不能编辑. 3.<

vim文本创建、编辑

1.编辑(创建)txt文本 vim test.txt 2.编辑文本 移动光标,在指定位置按下i键,下方出现insert即可开始编辑 3.退出编辑 编辑完成后按下esc键,底部的insert没有了 4.保存退出 同时拿下shift和:键,下方会出现:号 这个时候可以输入命名wq,回车即可保存退出 部分命令如下: :w ----- 保存,不退出vi :w! ----- 强制保存,不退出vi :w file ---- 将修改另外保存到file中,但不退出vi(不常用) :wq ----- 保存,并退出

Unity3D 之UGUI 文本框和编辑框

这里来讲解一下unity3D自带的UI功能,自带的UI也叫UGUI功能非常的强大,比起NGUI,更加的灵活,让用户能够更加容易的去使用. 首先创建一个文本Text 然后是文本相对应的属性 这里的属性比较的简单,一些基本的颜色,格式,字体加粗,字体大小,都有.如果需要字体文件,还可以从计算机的控制面板里进行导入. 然后是输入框 InputField游戏对象下面包括两个元素,一个是提示内容,一得到输入的内容 注意这里需要 有一个接收输入的设备,不然是不能响应输入的. Placecholder 提示的

背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox

原文:背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) RichTextBlock RichTextBlockOverflow RichEditBox 示例1.RichTextBlock 的示例Controls/TextControl/RichTextBlockDemo.xaml <Page

背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox

原文:背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) TextBox PasswordBox 示例1.TextBox 的示例 1Controls/TextControl/TextBoxDemo1.xaml <Page x:Class="Windows10.Controls.TextControl.TextBoxDemo1" xmln

背水一战 Windows 10 (27) - 控件(文本类): TextBlock

原文:背水一战 Windows 10 (27) - 控件(文本类): TextBlock [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) TextBlock 示例1.TextBlock 的示例 1Controls/TextControl/TextBlockDemo1.xaml <Page x:Class="Windows10.Controls.TextControl.TextBlockDemo1" xmlns="http://

背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox

原文:背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) AutoSuggestBox 示例Controls/TextControl/AutoSuggestBoxDemo.xaml <Page x:Class="Windows10.Controls.TextControl.AutoSuggestBoxDemo" xmlns="http:/

Windows static控件(静态文本框控件)

文本不克不及主动换行,超越窗口规模会被隐蔽: 每次更改文本都要先擦除配景再从新输入,比拟费事. 实践开辟中普通运用静态文本框控件来输入文本.静态文本框是Windows 的一种规范控件,可以用来在窗口上显示一段文本,而且文本轻易遭到掌握.除了静态文本框,Windows的规范控件还有许多种,例如按钮.下拉菜单.单选按钮.复选框等.其实,控件也是一种窗口,也运用 CreateWindow 函数来创立.然则它们运用的窗口类的名字比拟特别,是由Windows预界说的:静态文本框控件的窗口类名是static