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]).