For at udføre en rekursiv 'find og erstat' i alle filer i en mappe og dens undermapper ved brug af en shell som Bash eller Zsh, kan du følge disse trin:
cd /sti/til/din/mappe
find . -type f -exec sed -i 's/foo/bar/g' {} +
Her er en forklaring på, hvad hver del af kommandoen gør:
find . -type f
: Finder alle filer (-type f
) i den aktuelle mappe (angivet med .
) og dens undermapper.-exec
: Udfører en kommando på hver fil, der findes.sed -i 's/foo/bar/g'
: Bruger sed
til at erstatte alle forekomster af 'foo' med 'bar' i hver fil. Flaget -i
betyder, at ændringerne gemmes direkte i filerne.{}
: Pladsholder for hver fil, der findes af find
-kommandoen.+
: Angiver, at sed
-kommandoen skal anvendes på flere filer ad gangen for at forbedre ydeevnen.Bemærk: Denne kommando vil ændre alle filer i den angivne mappe og dens undermapper. Sørg for at tage en backup af dine filer, før du kører kommandoen, hvis du er usikker på resultatet.
Har du brug for hjælp til Bash eller Zsh opgaver? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige hjælpere på få minutter. Uanset om det er scripting, fejlfinding eller opsætning, er der altid en, der kan hjælpe dig. Få løst dine opgaver hurtigt og effektivt med Handyhand!