当你尝试使用“in-place”对文件进行排序时,
sort afile > afile
你最终发现afile
为空文件。
为什么会这样?我本来期望要么出错要么返回排序后的原始内容。我没有测试其他shell。
给能够达到期望行为的单行代码点赞。
PS:bash将输入重定向回同一文件根本没有解释“为什么”的问题。我知道可以用临时文件解决它,但我对发生了什么很感兴趣。点赞单行代码部分是事后想到的,是为了寻找更短的方法。
sort afile -o afile
。这将对文件进行排序并将排序结果保存回原始文件中,不会更改原始文件名或位置。 - domino