我对这个例子感到困惑:
[ziga@brane ~]$ touch test.txt
[ziga@brane ~]$ echo "TEST" > test.txt
[ziga@brane ~]$ cat test.txt
TEST
[ziga@brane ~]$ cat test.txt | grep "TEST"
TEST
[ziga@brane ~]$ cat test.txt | grep "TEST" > test.txt
[ziga@brane ~]$ cat test.txt
[ziga@brane ~]$
为什么要cat test.txt | grep "TEST" > test.txt
删除文件内容test.txt
?我认为>
重写并>>
附加!我缺少什么?
答案1
因为重定向首先发生,>test.txt
所以它首先截断文件,接下来cat test.txt
不读取任何内容,也不会传递任何内容| grep "TEST"
,因此没有任何匹配,最后没有任何内容写入打开的文件test.txt