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!