Предположим, у меня есть коллекция таких файлов:
echo -e "apple\n cherry" >> f1.txt;
echo -e "grape\n strawberry" >> f2.txt;
echo -e "orange\n cherry" >> f3.txt;
И я хочу найти каждый файл, в котором есть слово "cherry".Я могу сделать это:
ls *.txt | xargs cat | grep cherry
Но это просто возвращает две строки, совпадающие с f1 и f3, без отображения «исходных» файлов, например:
cherry
cherry
I 'Мне бы хотелось увидеть файлы, откуда пришли эти совпадения - примерно так:
f1.txt -> cherry
f3.txt -> cherry
Есть ли способ сделать это просто из командной строки?