Aynı temel dosya adına sahip birkaç dosyam var. Biri dışındaki tümünü kaldırmak istiyorum
foo.org #keep
foo.tex #delete
foo.fls #delete
foo.bib #delete
etc
Bir tane tutmak zorunda kalmazsam, kullanabileceğimi biliyorum rm foo.*.
TLDP eşleşmeyi reddettiğini gösterdi ^. Deneme ve yanılma yoluyla bunu bulabildim
rm foo.*[^org]
ihtiyacım olanı yapıyor, ancak sözdizimini gerçekten anlamıyorum.
Ayrıca kullanımım durumda değil bir sınırlama ise, bu desen de görmezden düşünüyorum foo.ove foo.or. Nasıl ve ne bir topak bu desen çalışması yoksayar ümit etmesi sadece foo.org benziyor?
Regular Expression. Gruplandırma karakterlerine dikkat etmelisin. Parantez kullanarak, bir harflerle uzantısı vardı herhangi bir dosyayı silmek olacak bir karakter sınıfı anlam belirttiğiniz o, rya gherhangi bir sırada. Bir grup oluşturmak ve karakter sırasını korumak için parantez kullanın.
foo.*[^org]başlayan herhangi bir dosya adıyla eşleşir foo.. Bu yüzden maç olur foo.orbama foo.orgya foo.orya foo.o. GlennJackman'ın cevabı, bir eşleşmeyi yok etmek için genişletilmiş desen eşleştirme özelliklerinin nasıl etkinleştirileceğini gösterir.
rm foo.*[^org]tüm dosyaları siler son ne karakterdiro,ryag, bu yüzdenfoo.fooeşler olmaz.