grep : 입력 파일 ‘X’도 출력 을 사용 ubuntu

을 사용 ubuntu 14.4하고 grep명령 출력을 파일 로 리디렉션하려고 시도 하지만이 오류가 계속 발생합니다.

grep: input file 'X' is also the output

이 문제를 검색하여 버그가 있음을 발견했으며 ubuntu 12.4이에 대한 설명이 없습니다.

다음 명령을 실행합니다.

grep -E -r -o -n r"%}(.*){%" > myfile



답변

에 대한 입력 및 출력과 동일한 파일을 사용할 수 없습니다 grep. 다음 대안을 고려할 수 있습니다.

  • 임시 파일

    grep pattern file > tmp_file
    mv tmp_file file
    
  • sed

    sed -i -n '/pattern/p' file
  • 전체 파일을 변수에 넣습니다 (큰 파일은 밝지 않습니다)

    x=$(cat file); echo "$x" | grep pattern > file

답변

명령 에서 --exclude필드를 다음 grep과 같이 사용할 수 있습니다 .

grep  --exclude=myfile  -Eron  r"%}(.*){%"  >  myfile


답변

나는 bash에서 길을 찾았다.
cat >> IN_OUTPUT_FILE <<< "$(grep something IN_OUTPUT_FILE)"

의 명령 <<<"..."이 먼저 실행됩니다.


답변