BASH-kommando til at søge efter streng i filer, undgå ".svn" mapper og ".html" filer

Hvordan kan en BASH-kommando skrives, så den søger efter en bestemt streng i alle filer i og under den nuværende mappe, men undgår at søge i filer i eller under mapper, der indeholder ".svn", og undgår filer, der ender med ".html"?

For at søge efter en bestemt streng i alle filer i og under den nuværende mappe, undgå mapper med ".svn" og filer, der ender med ".html", kan du bruge kommandoen: `find . -type f ! -path "*/.svn/*" ! -name "*.html" -exec grep -H "søgestreng" {} \;`.

Sådan skriver du en BASH-kommando for at søge efter en bestemt streng i alle filer i og under den nuværende mappe, undgå mapper med ".svn" og filer, der ender med ".html"

For at opnå dette kan du bruge en kombination af find og grep kommandoer. Her er en trin-for-trin guide:

  1. Brug find kommandoen til at søge efter filer i og under den nuværende mappe.
  2. Ekskluder mapper, der indeholder ".svn".
  3. Ekskluder filer, der ender med ".html".
  4. Brug grep til at søge efter den ønskede streng i de fundne filer.

Her er den komplette BASH-kommando:

find . -type f ! -path "*/.svn/*" ! -name "*.html" -exec grep -H "søgestreng" {} \;

Forklaring af kommandoen:

  • find .: Starter søgningen fra den nuværende mappe.
  • -type f: Søger kun efter filer.
  • ! -path "*/.svn/*": Ekskluderer alle filer i mapper, der indeholder ".svn".
  • ! -name "*.html": Ekskluderer alle filer, der ender med ".html".
  • -exec grep -H "søgestreng" {} \;: Udfører grep kommandoen på hver fundet fil for at søge efter "søgestreng". -H flaget sørger for, at filnavnet vises sammen med den fundne streng.

Ved at bruge denne kommando kan du effektivt søge efter en bestemt streng i alle relevante filer, mens du undgår uønskede mapper og filtyper.