
用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
请大神们帮帮忙吧,怎么能实现保持文件格式不变,只替换制定行内容呢?谢谢! 展开
1. 我现在用awk '{if($13=="1"||&13==“2”)$13="0"}' temp.txt 实现对13列中的=1或=2的值的替换,可是这样不能写回到文件。
2.原文件列之间用的是制表符,所以用>重定位写回时,写回的文件列之间变成了空格,文件格式就变了!
3.文件中有很多的别的位置也有"1"和"2",所以好像也不能用sed
请大神们帮帮忙吧,怎么能实现保持文件格式不变,只替换制定行内容呢?谢谢! 展开
2个回答
展开全部
awk 'BEGIN{OFS="\t"} {if ($13 == 1 || $13 == 2) {$13 = 0}; print}' temp.txt > /tmp/m.log
mv /tmp/m.log temp.txt
mv /tmp/m.log temp.txt
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询