display Non Ascii chars
需要判断语句中是否包含中文,这个不会,但要排除不包含英 文也能达到目的: 通常判断ascii码大于等于128的就不是英文了。但其实键盘能显示处理的是 32< ord(string) < 126,由这两 个来判断应该还可以。
perl -lne 'while(/(.)/g){print if ord($1) >= 128}' in1.txt
http://www.ascii.cl/htmlcodes.htm 判断 32 < ascii < 126, 这个来判断是否html语言似乎不足够,只能判断是否英文了。
perl -lne 'while(/(.)/g){print if 32 > ord($1) || ord($1) > 126}' in1.txt
**由于是/./g,每行的每个字符都会判断,所以有很多重复。使用last能取消改行重复,不需要另外sort -n | uniq** |
perl -ne 'while(/(.)/g){if (ord($1)>128){print ; last}}' file
##只显示整行都是ascii的段落
perl -ne 'while(/(.)/g){ if(ord($1)>128){push@array,$.;last;}}; print unless grep {$.==$_}@array'
my@array;
while ( <> ) {
while ( /(.)/g ) {
if ( ord($1)>128 ) {
push @array, $. ;
last ;
}
}
print $_ unless grep {$.==$_} @array ;
}