Kullanıcının bir Linux sisteminin ana bilgisayar adını yapılandırmasına izin veren mevcut bir betiğe bir özellik ekliyorum. aşağıdaki gibi ben zorlama ediyorum kurallar şunlardır:Altyazı içermeyen bir Bash dizesinin alfanümerik olmasını nasıl sağlayabilirim?
- başlatmak veya
- yalnızca alfasayısal karakterler ve tire içerebilir tire ile sona olmamalıdır uzunluğu 2 ile 63 karakter olmalı; Diğer tüm karakterler ben listedeki ilk iki çözdük
(ı \ W regex sembolünü kullanmak anlamına gelir bir alt çizgi dahil) izin verilmez, ama ben dışarı nasıl endam sorun yaşıyorum Bir bash dizesinin yalnızca harf, rakam ve tire içerdiğini kontrol etmek için kullanılır. Bunu bir regex ile yapabileceğimi düşünüyorum, ama nasıl olduğunu anlamakta zorlanıyorum (geçen saati web'de arama yaparak ve man sayfaları okuyarak geçirdim).
Sed, grep veya diğer standart araçlardan herhangi birine, ancak Perl veya Python kullanmaya açık değilim.
ile yapabilirsiniz? Adam sayfasında anahtarlar arıyorum ama başarıya ulaşmadım: Eşleşmesi gereken bir diziyi yankılanıyorum ve hiçbir şey çıkmıyor. –
@Montecristo: 'grep -E' veya' egrep' – Welbog
Bunu denedim: echo 1asdas * _- | grep -E '^ [[: alnum:]] [- [: alnum:]] {0,61} [[: alnum:]] $', çıkışsız (ayrıca tek tırnaksız), lol soru sanırım ...: P –