Yis*_*ang 1 linux sorting bash
我想排序一个名为fcan 的文件然后将文件排序的答案存储回f:
sort f >f
Run Code Online (Sandbox Code Playgroud)
但是这个命令以空文件结束f,为什么?如何使用一个命令实现我的目标,而不是这样做:
sort f >1
mv 1 f
Run Code Online (Sandbox Code Playgroud)
Kei*_*son 10
shell 在调用sort命令之前创建输出文件.(它必须;否则它将无法重定向sort命令stdout.)因此,当sort命令开始f作为参数运行时,f是一个空文件.
您可以使用以下-o选项来避免这种情况:
sort -o f f
Run Code Online (Sandbox Code Playgroud)
这导致sort程序本身f在开始读取输入文件之前创建输出文件f.由于文件创建在类Unix系统上的工作方式,输入f和输出f实际上是两个不同的文件.
正如POSIX规范sort所说:
-o output
指定要使用的输出文件的名称,而不是标准输出.此文件可以与其中一个输入文件相同.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |