편집하다

편집하다

강의 폴더의 여러 하위 디렉터리에 분산된 여러 파일에 숙제를 저장하는 교수가 있습니다. 제목은 "TODO:"입니다. 하나의 작업 파일에서 탐색하는 대신 이러한 모든 할 일을 Nano 텍스트 파일의 단일 파일로 출력하고 싶습니다. 다른 사람에게.

이 명령은 자주 사용하기 때문에 별칭을 만들어 보았지만 실행하려고 할 때마다 커서만 깜박거리고 아무 일도 일어나지 않습니다.

alias todo='cd /home/csc103/Desktop/shared/csc103-lectures && grep -Rw "TODO:" --after-context=6  --include="*.cpp" . > todo.txt && nano todo.txt'

내가 여기서 뭘 잘못하고 있는 걸까?


편집하다

"아무 일도 일어나지 않는다"는 것은 커서가 계속 깜박이고 다음 프롬프트가 나타나지 않는다는 것을 의미합니다. 아래 그림의 왼쪽 터미널 창에 표시된 대로입니다. 추가 메시지 없음

그러나 ctrl-C를 사용하여 프로세스를 강제 종료하면 todo 명령 별명을 사용하여 원하는 디렉토리로 이동하게 됩니다. 거기에 todo.txt 파일이 있습니다. Csc103-lectures가 올바른 디렉토리입니다.

또한 관련성이 있는 경우 VirtualBox의 Arch Linux 설치에서 이러한 명령을 실행합니다.

답변1

이미 이해했습니다. 귀하의 조언에 감사드립니다. 여기서 문제는 grep이 todo.txt 파일에서 "TODO:"를 반복적으로 검색한 다음 이 결과를 다시 todo.txt 파일에 기록한다는 것입니다. todo.txt를 열면 동일한 텍스트가 반복해서 반복되어 채워집니다. 당연히 --exclude="todo.txt"의 옵션을 사용해야 합니다 grep. 추가되면 완벽하게 작동합니다.

관련 정보