この例を見ると混乱しています。
[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