강의 폴더의 여러 하위 디렉터리에 분산된 여러 파일에 숙제를 저장하는 교수가 있습니다. 제목은 "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 파일이 있습니다.
또한 관련성이 있는 경우 VirtualBox의 Arch Linux 설치에서 이러한 명령을 실행합니다.
답변1
이미 이해했습니다. 귀하의 조언에 감사드립니다. 여기서 문제는 grep이 todo.txt 파일에서 "TODO:"를 반복적으로 검색한 다음 이 결과를 다시 todo.txt 파일에 기록한다는 것입니다. todo.txt를 열면 동일한 텍스트가 반복해서 반복되어 채워집니다. 당연히 --exclude="todo.txt"
의 옵션을 사용해야 합니다 grep
. 추가되면 완벽하게 작동합니다.