- 论坛徽章:
- 1
|
本帖最后由 xrzs1986 于 2014-07-18 01:22 编辑
回复 6# Shell_HAT
这种方式应该是有严重问题的,比如当awk处理的文件大于一次能处理的 IO Buffer 的时候,会。。。- Administrator@Vaio 01:00:09 ~ >
- seq 1000000 > 1.txt
- Administrator@Vaio 01:00:34 ~ >
- awk '{print $0"--"NR > "1.txt"}' 1.txt
- awk: cmd. line:1: (FILENAME=1.txt FNR=3681003) fatal: print to "1.txt" failed (No space left on device)
- Administrator@Vaio 01:01:34 ~ >
- ls -lrth
- total 8.1G
- -rw-r--r-- 1 Administrator None 108 May 22 01:05 a.py
- -rw-r--r-- 1 Administrator None 0 Jun 7 04:24 a1b.txt
- -rw-r--r-- 1 Administrator None 0 Jun 7 04:24 a2b.txt
- -rw-r--r-- 1 Administrator None 0 Jun 7 04:24 a3b.txt
- -rw-r--r-- 1 Administrator None 12 Jul 11 03:34 2.txt
- -rw-r--r-- 1 Administrator None 8.1G Jul 18 01:01 1.txt
- Administrator@Vaio 01:05:03 ~ >
复制代码 可以看到的是,死循环了,最终把我的磁盘写满了。。。
测试环境:cygwin,
awk -V
GNU Awk 4.0.1
Copyright (C) 1989, 1991-2012 Free Software Foundation.
结论:保险起见,永远不要对同一文件同时读写!
|
|