我正在基于正则表达式搜索文件,然后尝试在这些文件中搜索内容。例如,我有类似
#Find all C++ files that match a certain pattern and then search them
find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>"
我遇到的问题是某些路径中有空格,这会造成混淆xargs。我知道,如果我只是使用find,则可以使用-print0参数(以及上的-0参数xargs)来防止xargs将空格视为定界符。有类似的东西grep吗?
还是我完全以错误的方式解决了这个问题?天真,find要grep以xargs grep对我来说很有意义,但我持开放的态度产生相同的结果的其他方法。
xargs使用-i参数la 来定位参数,cat sample.txt | grep "pat t ern" | xargs -i grep "{}"大括号告诉它参数的位置。该手册告诉我,-i不建议使用,-I因此也许也值得一看。