Hvorfor "rm ^A*[0..9]2$" Fejler: Sletning af Filer med A og Slutter med 2 Tal

Hvorfor virker kommandoen "rm ^A*[0..9]2$" ikke til at slette filer, der starter med A og slutter med 2 tal?

Kommandoen "rm ^A*[0..9]2$" virker ikke til at slette filer, der starter med A og slutter med 2 tal, fordi den bruger regex-syntaks i stedet for globbing, som "rm" og de fleste shell-kommandoer anvender. Brug i stedet "rm A*[0-9][0-9]" for korrekt mønstermatching.

Hvorfor virker kommandoen "rm ^A*[0..9]2$" ikke til at slette filer, der starter med A og slutter med 2 tal?

Kommandoen "rm ^A*[0..9]2$" virker ikke til at slette filer, der starter med A og slutter med 2 tal, af flere grunde:

  • Regulære udtryk vs. globbing: Kommandoen bruger regulære udtryk (regex) syntaks, men "rm" og de fleste shell-kommandoer bruger globbing til mønstermatching. Globbing og regex har forskellige syntakser og regler.
  • Karakterer som ^ og $: I regulære udtryk bruges ^ til at angive starten af en linje og $ til at angive slutningen af en linje. Disse karakterer har ingen speciel betydning i globbing og vil blive behandlet som almindelige tegn.
  • Fejl i mønsteret: Mønsteret ^A*[0..9]2$ er ikke korrekt for globbing. For at matche filer, der starter med A og slutter med to tal, skal du bruge et globbing-mønster som A*[0-9][0-9].

For at opnå det ønskede resultat, kan du bruge følgende kommando:

rm A*[0-9][0-9]

Dette mønster vil:

  • Matche filer, der starter med bogstavet A.
  • Efterfølges af nul eller flere vilkårlige tegn (*).
  • Slutter med to cifre ([0-9][0-9]).