Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有人可以向我解释为什么这段代码有效(即 file2.txt 是 file1.txt 的按字母顺序排序的内容):
cat file1.txt | sort > file2.txt
但是当我这样做时,file1.txt 会自行空白......?
cat file1.txt | sort > file1.txt
你可以猜到,我试图简单地按字母顺序对文件的内容进行排序,然后写回同一个文件......
(我使用的是 mac 10.8.3 的终端。写作日期是 19may2013)
shellsort在打开file1.txt输出后启动(截断它,即丢弃所有数据)。然后它从cat开放file1.txt阅读开始。shell 的语义使得管道可以从file.txt.不以这种方式运行的)将在cat读取任何数据之前截断文件。
sort
file1.txt
cat
file.txt
要执行此操作,您必须使用临时文件。(嗯,使用临时文件不是强制性的。如果文件足够小,这样的东西可能会起作用cat file1.txt | ( sleep 2; sort > file1.txt ),但不能保证。)
cat file1.txt | ( sleep 2; sort > file1.txt )