awk在arm下的不解问题
我们都听说过这样一句话:一行shell,百行c。于是我们在linux下对文件操作是第一个想到的是利用awk,然而,这次使用awk产生的问题让我非常不解,请大家帮忙。
在ubuntu 11.10下,在当前目录下存在一个文件 user_info.txt,内容如下
a:1:1
d:haha:1
b:3:2
c:1:1
使用如下这句话,很明显,是将将第4行的“c”改为“cc” 并重新写入原文件,达到修改的目的。
awk -F: 'OFS=":"{if($1 == "c") $1="cc";print > "user_info.txt"}' user_info.txt
修改后如下
a:1:1
d:haha:1
b:3:2
cc:1:1
然而同样的一句话,在arm的linux下,执行时,久久未返回,我为此久经周折(毕竟工作中是一个大的程序),它一直在写,没完没了,最后我Ctrl+C让他停止,打开修改的文档,这一幕我怎么都不能理解。文档内容如下
a:1:1
d:haha:1
b:3:2
cc:1:1
.
.
.
上面的三个点代表无数多行,是的,awk为我在文件中增加了上百万行!!!!不知这是什么情况,为什么只在arm下发生。特此向各位求助。(注:文件末位有预留的一行空行)