相关疑难解决方法(0)

读写文件:tee 命令

众所周知,像这样的命令:

cat filename | some_sed_command >filename
Run Code Online (Sandbox Code Playgroud)

擦除文件文件名,因为在命令之前执行的输出重定向会导致文件名被截断。

可以通过以下方式解决问题:

cat file | some_sed_command | tee file >/dev/null
Run Code Online (Sandbox Code Playgroud)

但我不确定这在任何情况下都有效:如果文件(和 sed 命令的结果)非常大,会发生什么?操作系统如何避免覆盖一些尚未读取的内容?我看到还有一个海绵命令在任何情况下都应该起作用:它比 tee 更“安全”吗?

command-line bash tee

11
推荐指数
2
解决办法
4630
查看次数

使用 sort 命令对文件进行排序并覆盖它

我试图对文本文件进行排序并将排序后的文件替换为原始文件,因此我将该文件也设置为排序命令的输出,但是当我这样做时,它会清除文件内容并且文件变为空,为什么?我可以使用另一个文件来解决这个问题,但感觉不太好:D,(我正在使用 Lubuntu。)

faav@faav-XPS-L501X:~$ cat test
A
C
B
faav@faav-XPS-L501X:~$ ls -l test
-rw-rw-r-- 1 faav faav 6 Apr 14 00:28 test
faav@faav-XPS-L501X:~$ sort test > test
faav@faav-XPS-L501X:~$ cat test
faav@faav-XPS-L501X:~$ ls -l test
-rw-rw-r-- 1 faav faav 0 Apr 14 00:28 test
Run Code Online (Sandbox Code Playgroud)

sort

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

command-line ×1

sort ×1

tee ×1