Window文件发送到linux下出现乱码:sed出征!

本次使用Python的模块进行window和linux的交互,在发送文件给linux时出现了乱码的问题。将里面内容修改一样也没用,设置编码?都是utf-8了,那么还有什么问题?

除了编码,还有回车?!

    这里window的文件的回车是\r\n,我先在window中写入了‘\n’,实际上保存时都是'\r\n',这样一来,在发送到linux中就有问题了。

Sed真的可以有!

       sed是什么?

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

        本次使用的命令是

sed -i 's/\r//' $FILE$

1.这里的 "-i"表示直接把FILE文件修改掉了

2.‘s/str1/str2/’:这是最基础的替换表示

3.'s表示替换,/是定界符,第一个之后的是需要替换的,第二个是之后的是替换成的内容,第三个是其他的设置。

4.‘/str1’在这里是'/\r’---表示window换行用到的\r

5.而'/str2'在这里是‘/’是空

6.最后的‘/’是结束,默认替换出现的第一个匹配。

                    也可以是'/p'表示把替换部分打印显示一下。

                    ‘/g’是替换每行的所有匹配。

                        ‘/gp’就是以上两个的组合了。

                        ‘/Ng’表示从第N个匹配开始替换。


更多的可以看,真的很有用。

http://man.linuxde.net/sed

猜你喜欢

转载自blog.csdn.net/qq_37887537/article/details/80622273