189 8069 5689

linux命令修改换行符 Linux换行命令

Linux上如何进行换行符转换

(一)最近在学习shell编程,可是在《Linux程序设计》指定的网站上下载了源码,使用的时候却一直出问题。提示:”bash: ./here1:/bin/sh^M:损坏的解释器: 没有该文件或目录“。之后用vi编辑器打开文件,发觉每一行的最后有浅蓝色的字符'^M'。才知道了问题所在

创新互联公司-专业网站定制、快速模板网站建设、高性价比城子河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式城子河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖城子河地区。费用合理售后完善,十多年实体公司更值得信赖。

其实并没什么奇怪的,出现这种错误的原因是因为Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用"

"(0a)表示回车换行,而Windows用"\r

"(0d 0a)表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"\r

"转化成"

",unixtodos把"

"转化成"\r

"。

命令dos2unix和unix2dos的使用非常简单,格式为:dos2unix filename

如果想更多的了解这两个命令,可以查看手册:

man dos2unix

它会告诉你dos2unix的高级用法(二)Ubuntu下默认没有安装dos2unix工具,而且也没有一个叫这个名字的工具(我在solaris里用过dos2unix,不知道为啥Ubuntu没有)。但是有一个替代工具——tofrodos , 下面就说一下它的安装和使用。

当然还是apt安装啦。

(1)安装tofrodos

sudo apt-get install tofrodos

实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)

安装完即可,现在你已经可以进行文本格式的转换啦。

比如: todos Hello.txt (即unix2dos Hello.txt)

fromdos Hello.txt (即dos2unix Hello.txt)

(2)做一些优化

由于习惯了unix2dos和dos2unix的命令,可以把上面安装的两个工具链接成unix2dos 和dos2unix,或者仅仅是起个别名,并放在启动脚本里。

步骤:以下是代码片段:

ln -s /usr/bin/todos /usr/bin/unix2dos

ln -s /usr/bin/fromdos /usr/bin/dos2unix

或者在 ~/.bashrc里起个别名

添加 alias unix2dos=todos alias dos2unix=fromdos(三)另外如果要在目录中大量替换, 可以使用find + xargs比如:find ./model -name *.sh | xargs fromdos

LINUX删掉换行符

去掉文件中的换行符

(1)tr命令的操作是针对文件的操作,它把整个文本当做操作的对象,所以可以直接去除文件中的换行符

tr '\n' ' ' file

(2)sed的操作对象是行.而作为行分割符号的回车符,本身是不属于行的.所以sed中必须加上N命令,把下一行的内容添加到当前的pattern space中,这样实际上是把相邻的2行合并了.下一次仍然是先n,再p,再N,开始新的轮回:

cat file | sed 'N;s/\n/ /'

所以上面的语句是不能把文件内容合并为一行的,到底该怎么写,我暂时没有想到,呵呵

(3)直接用awk

awk '{printf("%s ",$0)}' file

(4)当然,用echo也是可以的:

while read line;do echo -n "$line"; done awk_help.txt, 这样,可以把awk_help.txt的内容合并为一行

sed -e "s#\[/r][/r][/n]#\[/r][/n]#g" file

Linux服务器上如何进行换行符转换

1、用VIM查看文件编码

在Vim 中可以直接查看文件编码

:set fileencoding

即可显示文件编码格式。

2、 改写~/.vimrc 文件

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在

~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

3、 用ICONV文件编码转换

我们利用iconv工具对文件的编码进行转换。

iconv 转换,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

比如将一个GBK 编码的文件转换成UTF-8编码

iconv -f GBK -t UTF-8 file1 -o file2

其中的参数的意义表示

-f From 某个编码

-t To 某个编码

-o 输出到文件

4、 通过记事本另存为来改变文件编码;

既用Windows下的记事本打开,选择另存为……,改变编码即可。


网页题目:linux命令修改换行符 Linux换行命令
网站地址:http://jkwzsj.com/article/dodjdsj.html

其他资讯