grep
karakterinin fikri yerel ayara bağlıdır . Unicode olmayan bir yerdeyseniz ve içinde Unicode karakterleri olan bir dosyadan grep yaparsanız, karakter sayıları eşleşmez. Eğer echo $LANG
o zaman içinde bulunduğunuz yerel ayarı göreceksiniz.
Eğer ayarlarsanız LC_CTYPE
ve / veya LANG
".UTF-8" O zaman doğru davranışı alacak ile biten bir değere Ortam değişkenlerini:
$ cat data
étuis
letter
éééééé
$ LANG=C grep -E '^.{6}$' data
étuis
letter
$ LANG=en_US.UTF_8 grep -E '^.{6}$' data
letter
éééééé
$
Değişkeni komutla aynı satıra atayarak yerel ayarınızı tek bir komut için değiştirebilirsiniz.
Bu yapılandırmada, çok baytlı karakterler tek karakter olarak kabul edilir. ASCII dışı karakterleri tamamen hariç tutmak istiyorsanız, diğer yanıtların bazılarının sizin için çözümleri vardır.
Karakterlerin bir araya gelmesi durumunda, işlerin kırılmasının veya en azından beklediğiniz şeyi yapmamasının hala mümkün olduğunu unutmayın . Sizin grep
farklı LATİN KÜÇÜK MEKTUP E İLE AKUT daha KARAKTER AKUT YUKARIDAKİ KOŞULLARI BİRLEŞTİRİLMESİ LATİN KÜÇÜK MEKTUP E + ele alabilir.
.
, benzer bir şeywăsd's
eşleşir