awk '{if($0~/^M/) {print gsub(/^M/,"")} else {print $0} }' $1 > test 为啥test中的数据与$1中数据一样

但屏幕上显示的是已经去掉^M的数据???... 但屏幕上显示的是已经去掉^M的数据??? 展开
 我来答
qiaoxiaomao
2012-06-05 · TA获得超过368个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:412万
展开全部
首先你的数据是什么样的?
数据只有一列吗?

你的gsub函数是不是少写了个参数,应该是gsub(/^M/,"",$0)
按你的if、else的逻辑,屏幕上显示的一定是去掉M后的数据。
你并没有对数据进行更改,所以test中的数据就是原数据的第一列。
我认为你说的现象没有什么不对的。
leafseesnow
2012-06-04 · TA获得超过273个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:160万
展开全部
你怎么确定屏幕上现实的是没有^M的数据呢,^M是不可见的字符吧~

应该是脚本写得有问题,awk 貌似不支持 ^M 这种写法把,用 VIM 试试:
:s/^M//g

注:要打出 ^M 需要在 VIM 里,先按 ctrl + v,再按 ctrl + m
希望对你有帮助~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小米飞猫
2012-06-05 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
必须一样。不一样就出事了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bawvm
2017-09-06
知道答主
回答量:48
采纳率:0%
帮助的人:14.8万
引用小米飞猫的回答:
必须一样。不一样就出事了。
展开全部
因为你$1中的数据都不是以M开头
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式