linux下将ctrl+M替换为换行符

问题:

嵌入式设备中执行命令wget,将错误信息重定向到文件wget.log中,使用vim编辑器查看信息:

Connecting to 192.168.1.63 (192.168.1.63:80)
^Mindex.html             0% |                               |     0  --:--:-- ETA^Mindex.html           100% |*******************************|   246  --:--:-- ETA

这样,当执行命令

cat wget.log | grep 100% | awk -F ' ' '{print $2}'

时,期待获取的字符串为“100%”,得到的却是“0%”。

原来,虽然通过cat或者less命令并不显示两个“^M”之间的信息,但是awk却能看到,所以,需要将{print $2}改为{print $8}才能得到“100%”。

解决办法:

1. 只要将两个“^M”改为换行符,就可以通过grep 100%查找到真正包含“100%”的行。

2. 在vim编辑器中将“^M”替换为换行符的命令为:

:%s/^M/\r/gc
其中,“^M”的输入方法是:按住Ctrl键,先按v,再松开v,再按m。

3. 使用sed命令替换文本文件中的“^M”的命令:

sed -i s/^M/'\n'/g this.log

其中,this.log为要执行替换命令的文本文件,“^M”的输入方法是:按住Ctrl键,先按v,再松开v,再按m。

备注:换行符一定要用'\n'来表示,否则,结果就不对了。


问题解决。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值