Я ищу файлы на основе регулярного выражения, а затем пытаюсь найти в этих файлах контент. Так, например, у меня есть что-то вроде
#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так что, возможно, стоит взглянуть на это тоже.