
폴더의 모든 .tex 파일에서 가 발생하는지 검색 \todo
하고 해당 파일 이름과 줄 번호를 출력하는 (bash) 스크립트를 어떻게 작성할 수 있습니까?
내가 지금까지 얻은 것 :
#!/bin/bash
for texfile in *.tex ; do
**Scan for \todo**
**output $textfile$ , linenumber**
done
\todo{sometext}
내 .tex 파일을 전달할 때 해당 파일에 포함되지 않았는지 확인하고 싶습니다 .
bash일 필요는 없으며 단순함을 위해 bash를 선택했습니다. Grep 등은 확실히 환영받을 것입니다.
답변1
grep
이 작업은 자체적으로 수행할 수 있으며 필요한 경우 스크립트로 래핑할 수 있습니다.
grep -nr '\todo' *.tex
-r
재귀적으로
-n
파일의 줄 번호를 표시하려면
기본적으로 grep은 일치 항목이 포함된 행을 표시합니다. 일부 형식의 경우 이는 많은 출력을 의미할 수 있습니다. 일치하는 항목과 양쪽에 몇 개의 문자만 얻을 수 있도록 출력을 제한하려면 다음을 사용하십시오.
egrep -nor '.{0,20}\\todo.{0,20}' *.tex
"일치하는 결과만 표시"를 의미 -o
하지만 그러면 \todo
. 맥락을 파악하기 위해 일치 항목 양쪽에 최대 20자까지 문자를 허용합니다. 는 .
무엇이든 일치하며 {0,20}
이 일치를 최대 20자까지 반복합니다.