Używanie wyniku find dla innych poleceń

Hej,
w jaki sposób mógłbym uruchomić za pomocą jednej linijki program gdformat z wynikami wyrzuconymi przez polecenie find?

Program - find ./ | grep "\.gd$"

Wynik

./Benchmark/Benchmark.gd
./Units/Ant.gd
./Classes/Vector2j.gd
./Start.gd
./Tests/MapCreatorTests.gd
./Tests/PerformanceChecker.gd

Chciałbym aby wykonało się coś w tym stylu

gdformat ./Benchmark/Benchmark.gd --line-size=20
gdformat ./Units/Ant.gd --line-size=20
gdformat ./Classes/Vector2j.gd --line-size=20
gdformat ./Start.gd --line-size=20
gdformat ./Tests/MapCreatorTests.gd --line-size=20
gdformat ./Tests/PerformanceChecker.gd --line-size=20

Za pomocą polecenia xargs wszystko wykonuje się w jednej linii
find ./ | grep "\.gd$" | xargs gdformat --line-size=20
Uruchamia polecenie

gdformat --line-size=20 ./Benchmark/Benchmark.gd ./Units/Ant.gd ./Classes/Vector2j.gd ./Start.gd ./Tests/MapCreatorTests.gd ./Tests/PerformanceChecker.gd

Polecam poczytać manual do find, bo to jedna z najbardziej przekombinowanych komend ever.

nie korzystam za często z find, ale jak dla mnie to będzie coś w ten deseń:
find ./ -name *.gd - exec gdformat ‘{}’ --line-size=20 /;

Pomyliłeś / z \ .

Na marginesie, to przed gwiazdką we wzorcu nazwa, zawsze wstawiam znak \ . Wydaje mi się, że inaczej powłoka może dopasować np. *.gd do pliku/ów w bieżącym katalogu i polecenie może nie działać, jakbyśmy tego oczekiwali.

Też się zastanawiam po co tu grep, skoro find potrafi znaleźć pliki po wzorcach :slight_smile:

Nawet jeśli dasz find . -name “*.gd” to będzie szukał również w podfolderach, chyba że określisz mu max-depth.

Ja zaś zawsze wzorzec umieszczam w cudzysłowiu, bo find zawsze miał problemy z wyszukiwaniem.