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

参考:http://man.linuxde.net/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个匹配开始替换。

示例

1.将文件中的固定字符串转为指定的其他字符串

[root@instance-m6j3d3kh ~]# cat 1.txt
hello
i am boy
bye~
[root@instance-m6j3d3kh ~]# sed -i 's\boy\girl\' 1.txt
[root@instance-m6j3d3kh ~]# cat 1.txt
hello
i am girl
bye~

2.检查脚本中某一行的命令是否存在,不存在添加

这个直接使用命令行目前我只能先使用sed删除,然后再最后面添加一次。

[root@instance-m6j3d3kh ~]# sed -i 's\bye~\\' 1.txt
[root@instance-m6j3d3kh ~]# cat 1.txt
hello
i am girl

[root@instance-m6j3d3kh ~]# echo "see you~" >> 1.txt
[root@instance-m6j3d3kh ~]# cat 1.txt
hello
i am girl

see you~
[root@instance-m6j3d3kh ~]#

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值