grep: o arquivo de entrada 'X' também é a saída

3

Eu uso ubuntu 14.4 e tento redirecionar a saída do comando grep para um arquivo, mas continuo recebendo este erro:

grep: input file 'X' is also the output

Eu procurei por esse problema e acabei de descobrir que era um bug em ubuntu 12.4 e não há nenhuma descrição, alguém pode me ajudar a descobrir esse problema?

Eu corro o seguinte comando:

grep -E -r -o -n r"%}(.*){%" > myfile
    
por Kasrâmvd 25.10.2014 / 23:24

2 respostas

5

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
    
por 25.10.2014 / 23:45
3

Você pode usar o campo --exclude no seu comando grep da seguinte forma:

grep  --exclude=myfile  -Eron  r"%}(.*){%"  >  myfile
    
por 04.09.2015 / 15:23