Я ищу файлы на основе регулярного выражения, а затем пытаюсь найти в этих файлах контент. Так, например, у меня есть что-то вроде
#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
аргументом on xargs
), чтобы Xargs не рассматривал пробелы как разделители. Есть ли что-то подобное с grep
?
Или я совсем неправильно подхожу к этой проблеме? Наивно, find
чтобы grep
в xargs grep
имеет смысл для меня, но я открыт для других подходов , которые дают те же результаты.
xargs
помощью-i
параметра, а ляcat sample.txt | grep "pat t ern" | xargs -i grep "{}"
фигурные скобки сообщают ему, где позиционировать аргумент. Руководство говорит мне, что-i
это устарело в пользу,-I
так что, возможно, стоит взглянуть на это тоже.