ASCII olmayan karakterleri kabuktan nasıl belirleyebilirim?


13

Tüm ASCII olmayan karakterler ve onlar gibi bir komut satırı yardımcı programını kullanarak bir dosyada gerçekleştiği üzerinde satır numaralarını yazdırmak için basit bir yolu var mı grep, awk, perl, vs?

UTF-8'den ASCII'ye bir metin dosyasının kodlamasını değiştirmek istiyorum, ancak bunu yapmadan önce, dosya dönüştürme rutinden etkilenen beklenmedik karakter değişikliklerini önlemek için ASCII olmayan karakterlerin tüm örneklerini el ile değiştirmek istiyorum.

Yanıtlar:


14
$ perl -ne 'print "$. $_" if m/[\x80-\xFF]/'  utf8.txt
2 Pour être ou ne pas être
4 Byť či nebyť
5 是或不

veya

$ grep -n -P '[\x80-\xFF]' utf8.txt
2:Pour être ou ne pas être
4:Byť či nebyť
5:是或不

utf8.txt burada

$ cat utf8.txt
To be or not to be.
Pour être ou ne pas être
Om of niet zijn
Byť či nebyť
是或不

1
Teşekkürler. Perl snippet'i doğrudan çalışır, ancak grep sürümü GNU grep 2.16 ile çalışmaz. Ben aracılığıyla o iş yapmak başardı: LC_ALL=C grep -n -P [$'\x80'-$'\xFF']nerede harmanlama off ilk bit dönüşler.
Joe Corneli

4

Bir metin dosyasının kodlamasını UTF-8'den ASCII'ye değiştirmek istiyorum ...

... ASCII olmayan karakterlerin tüm örneklerini değiştir ...

Ardından, dönüşüm aracınıza bunu yapmasını söyleyin.

$ iconv -c -f UTF-8 -t ASCII <<< 'Look at 私.'
Look at .

$ iconv -c -f UTF-8 -t ASCII//translit <<< 'áēìöų'
aeiou

Bu değişikliği el ile yapmak istediğini söyledi. Belki de en uygun değiştirme bağlama bağlıdır.
mark4o
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.