用shell脚本如何实现替换某列中特定的值?

注:1.我现在用awk'{if($13=="1"||&13==“2”)$13="0"}'temp.txt实现对13列中的=1或=2的值的替换,可是这样不能写回到文件。2.... 注:
1. 我现在用awk '{if($13=="1"||&13==“2”)$13="0"}' temp.txt 实现对13列中的=1或=2的值的替换,可是这样不能写回到文件。
2.原文件列之间用的是制表符,所以用>重定位写回时,写回的文件列之间变成了空格,文件格式就变了!
3.文件中有很多的别的位置也有"1"和"2",所以好像也不能用sed

请大神们帮帮忙吧,怎么能实现保持文件格式不变,只替换制定行内容呢?谢谢!
展开
 我来答
kwydwuf
2012-02-13 · TA获得超过7412个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2190万
展开全部
awk 'BEGIN{OFS="\t"} {if ($13 == 1 || $13 == 2) {$13 = 0}; print}' temp.txt > /tmp/m.log
mv /tmp/m.log temp.txt
ccctctc
2012-02-13 · TA获得超过6601个赞
知道小有建树答主
回答量:1346
采纳率:0%
帮助的人:497万
展开全部
awk 和 sed 都不会对源文件做更改,这也是处于安全考虑的。
1楼的能解决问题,我只是来
mark 以下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式