我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方法吗?我最喜欢的 IDE
grep
在内部使用,所以我认为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 中实现类似的功能那就太好了。