Jak użyć nazwy pliku z sed w wyrażeniu find

Próbuję odpowiedziećUżywanie Bash / Perl do modyfikowania plików na podstawie nazwy każdego pliku Skończyłem w punkcie, w którym nie wiem, jak używaćfind ised wszyscy razem.

Powiedzmy, że istnieje pewna struktura plików, w których chcemy zmienić linię, dodając nazwę pliku.

Gdyby to było normalnefor pętla, którą zrobilibyśmy:

for file in dir/*
do
   sed -i "s/text/text plus $file/g" $file
done

Ale powiedzmy, że chcemy użyćfind zmienić pliki ze wszystkich podkatalogów. W tym przypadku użyłbym ...

find . -type f -exec sed -i "s/text/text plus {}/g" {} \;
                                              ^
                                   it does not like this part

ale te{} w ciągused nie są akceptowane i otrzymuję błąd

sed: -e wyrażenie # 1, char 20: nieznana opcja na `s '

Znalazłem podobne pytania (1), ale nie mógł uogólnić go wystarczająco, aby uczynić go zrozumiałym w tym przypadku.

Jestem pewien, że przyjdziecie z tym świetnym rozwiązaniem. Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion