grep: 입력 파일 "X"도 출력됩니다.

grep: 입력 파일 "X"도 출력됩니다.

명령 출력을 파일로 리디렉션 ubuntu 14.4하려고 하는데 다음 오류가 계속 발생합니다.grep

grep: input file 'X' is also the output

다음 명령을 실행합니다.

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

오류에 따르면 입력과 출력을 동일한 이름/객체로 해석하는 것 같습니다. 검색해봤는데 뭐가 문제인지 못찾았나요? !

답변1

입력과 출력에 동일한 파일을 사용할 수 없습니다 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
    

답변2

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

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

답변3

그냥 이렇게 하세요

echo "$(grep pattern file)" > file

답변4

Bash에서 방법을 찾았습니다. cat >> IN_OUTPUT_FILE <<< "$(grep something IN_OUTPUT_FILE)"

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

관련 정보