명령 출력을 파일로 리디렉션 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
--exclude
grep
다음과 같이 명령에서 이 필드를 사용할 수 있습니다 .
grep --exclude=myfile -Eron r"%}(.*){%" > myfile
답변3
그냥 이렇게 하세요
echo "$(grep pattern file)" > file
답변4
Bash에서 방법을 찾았습니다.
cat >> IN_OUTPUT_FILE <<< "$(grep something IN_OUTPUT_FILE)"
의 명령이 <<<"..."
먼저 실행됩니다.