linux sheet脚本去掉m,linux下的文本dos格式转unix格式,去除^M符号

今天工作在处理批量查询的统计需求,由于原始数据是从execl拷贝的文本,通过shell去分析这批数据。等待很久后去取结果,发现查询导出后的数据为空,这下郁闷至极(还有很多事情要做)。首先质疑shell脚本把所有执行记录的sql语句都echo到一个文本中发现所有导出来的每条查询记录都被分成两行,刚开始还没意识到^M的惹的祸,反反复复去调整shell脚本,以致于将shell脚本改成负担最重的全记录搜索,没加任何条件。(也许是太多事情压着要做,那时脑子不够冷静没有去抓问题主因),问题依旧没得到解决,崩溃。最后单独拿出一条记录出来分析,仔细一看echo出来的sql记录有^M,无语。。。。。。(我怎么会把^M这个问题给忽视了,真应该自我鄙视下,难道莫不是总要吃次亏)。最后打紧sed -i “s/^M//g”替换掉,重新开搞。感叹自己最近一段时间的状态的确不好,老是感觉很烦躁,是真需要调节下。

在网上又搜索到一篇将UNIX和WINDOWS间的换行转换的文章,学习补充下:

语法

dos2unix [-kn] file [newfile] 从DOS转换到UNIX

unix2dos [-kn] file [newfile] 从UNIX转换到DOS也就是WINDOWS

-k : 保留该文档原来的 mtime 时间 (不更新文档上次内容经过修改的时间)

-n : 保留原来的文档,将转换后的内容输入到新文档中 例如: dos2unix -n old new

范例如下:

$cat -v killws

#!/bin/bash^M

admin_dir="/home/admin"^M

function check_user {^M

if [[ `whoami` != "admin" ]];then^M

echo "Apache only can start by admin user,exit!"^M

exit^M

fi^M

}^M

$dos2unix -k killws

dos2unix: converting file killws to UNIX format ...

$cat -v killws

#!/bin/bash

admin_dir="/home/admin"

function check_user {

if [[ `whoami` != "admin" ]];then

echo "Apache only can start by admin user,exit!"

exit

fi

}

还有一种转换方法:

直接 vim file 输入set ff=unix.保存退出!

——————End——————

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值