Napisz skrypt powłoki, który znajdzie i wyszuka nazwę pliku i zawartość w 1 linii

Aby zobaczyć wszystkie pliki php zawierające „abc”, mogę użyć tego prostego skryptu:

find . -name "*php" -exec grep -l abc {} \;

Mogę pominąć -l i otrzymam fragmenty zawartości zamiast nazw plików jako wyniki:

find . -name "*php" -exec grep abc {} \;

To, co chciałbym teraz, to wersja, która robi obie jednocześnie, ale w tej samej linii.

Oczekiwany wynik:

path1/filename1: lorem abc ipsum
path2/filename2: ipsum abc lorem
path3/filename3: non abc quod

Mniej więcej takgrep abc * robi.

Edytować: Chcę użyć tego jako prostego skryptu powłoki. Byłoby wspaniale, gdyby wyjście było w jednej linii, więc możliwe byłoby dalsze pomijanie. Ale nie jest konieczne, aby skrypt był tylko jedną linią, i tak umieszczam go w pliku skryptu bash.

Edytuj 2: Później znalazłem „ack”, które jest świetnym narzędziem i używam tego teraz w większości przypadków zamiast grep. Robi to wszystko i więcej.http://betterthangrep.com/ Ty byś pisałack --php --nogroup abc aby uzyskać pożądany rezultat

questionAnswers(3)

yourAnswerToTheQuestion