Find-grep 查找 .tex 文件列表?

Find-grep 查找 .tex 文件列表?

document.tex想要获取文件列表,并使用术语 grep 这些文件gastric

\subimport{}{1.2_protocal_answers.tex}
\subimport{}{2_protocol_answers.tex}
  • 1.2_protocal_answers.tex内容:this is a gastric juice lorem content
  • 2_protocol_answers.tex内容:this is a second gastric\n test file

我的 .pdf 输出已损坏,但我需要搜索材料中的内容。我的目录太大,无法为所有人完成,这可以使用 Geany 的Find in Files.我想对文件中导入的文件进行相关搜索。尝试

  • 我无法获取 .tex 文档中的文件列表的伪代码

    find ./document.tex -type f -exec \
        grep -E '\subimport{[A-Za-z1-9_-]*} {} \; 
    # TODO search the list of files with the word `gastric`
    
  • 有什么IDE方法吗?我最喜欢的 IDEgrep在内部使用,所以我认为find-grep这里的方法是最合适的。

系统:Ubuntu 16.04,64 位
grep:grep (GNU grep) 2.25
查找:find (GNU findutils) 4.7.0-git
硬件:Macbook Air 2013-mid
Linux 内核:4.6

答案1

根据用户需要进行编辑:

   cat document.tex | cut -d'{' -f3 | cut -d'}' -f1 | while read file
         grep -i 'gastric' "$file" &>/dev/null && echo "$file contains gastric"
   done 

答案2

perl -l0 -ne 'print for /\\subimport\{\}\{(.*?)\}/g' file.tex

将打印这些\subimport{}{...}函数内的文件名(以 NUL 分隔)。

您可以通过管道将其xargs -0 grep -l gastric --查找到哪些文件包含gastric.

答案3

最后,我使用脚本在目录中搜索这里重定向到 Vim。如果能直接在 Geany IDE 中实现类似的功能那就太好了。

相关内容