Não é possível usar o mesmo arquivo como entrada e saída para grep
.
Você pode considerar as seguintes alternativas:
-
arquivo temporário
grep pattern file > tmp_file mv tmp_file file
-
sed
sed -i -n '/pattern/p' file
-
coloca o arquivo inteiro na variável (idéia não brilhante para arquivos grandes)
x=$(cat file); echo "$x" | grep pattern > file