不使用临时文件对文件进行排序

发布于 2024-12-08 21:33:28 字数 228 浏览 0 评论 0原文

我想在 unix shell 中对文件进行排序。我可以将结果重定向到输入文件中吗?

例如,如果我的输入文件是 foo 那么我可以使用

    sort foo > foo   

或者我应该使用:

    sort -o foo foo

以上两者之间有什么区别?

谢谢,

I want to sort a file in unix shell. Can I redirect my result into my input file?

e.g. if my input file is foo then can I use

    sort foo > foo   

or I should use:

    sort -o foo foo

What would be difference between above two?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤寂小茶 2024-12-15 21:33:28

使用

sort -o foo foo

man 页面:

<代码>-o 输出文件'
将输出写入 OUTPUT-FILE 而不是标准输出。如果
OUTPUT-FILE 是输入文件之一,sort' 将其复制到
在排序并将输出写入之前的临时文件
输出文件。

排序 foo > foo 表示将输出写入标准输出,该标准输出被重定向到输出文件。在重定向之前,> 将截断/覆盖输出文件(如果存在)。由于输入和输出文件相同,因此您将丢失输入文件信息。

Use

sort -o foo foo

From the man page:

-o OUTPUT-FILE'
Write output to OUTPUT-FILE instead of standard output. If
OUTPUT-FILE is one of the input files,
sort' copies it to a
temporary file before sorting and writing the output to
OUTPUT-FILE.

sort foo > foo means writing output to the standard output which is redirected to the output file. Before redirecting, > will truncate/overwrite the output file if one is exist. Since both the input and output files are same, you will lose the input file information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文