我正在尝试使用以下命令对文件进行排序:sort ${filename} > ${filename}
,结果是-一个空文件。
有人可以解释为什么我得到这个结果以及如何解决它吗?
答案 0 :(得分:1)
您要尝试的是就地sort
,因此可能不支持,请尝试。
sort ${filename} > temp_file && mv temp_file ${filename}
答案 1 :(得分:1)
简而言之,因为Bash在sort
可以读取文件之前将其截断。除了@ RavinderSingh13的答案(这是解决它的标准方法)外,您还可以使用sponge
软件包中的moreutils
:
sort ${filename} | sponge ${filename}