当您尝试使用以下命令对文件进行就地排序时
sort afile > afile
你默默地结束了afile
是一个空文件。
这是为什么?我预计要么是错误,要么是原始内容,但已排序。
我没有测试过其他外壳。
对确实执行预期行为的俏皮话投赞成票。
PS
bash 将文件中的输入重定向回同一文件 https://stackoverflow.com/questions/6696842/bash-redirect-input-from-file-back-into-same-file根本没有解决“为什么”。我知道我可以用临时文件解决这个问题。我对发生的事情很感兴趣。对俏皮话部分的赞成是为了寻找更短的方法而事后才想到的。
With sort afile > afile
有时候是这样的:
shell 打开并截断afile
因为文件方向操作> afile
shell 执行sort
具有一个参数的程序,afile
,并将新进程的 stdout 绑定到步骤 1 中打开的文件描述符。
排序程序打开作为第一个参数给出的文件,由于步骤 1 中发生截断,该文件为空。
你可以这样做sort afile -o afile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)