亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(grep)正則表達式以匹配非ASCII字符?

(grep)正則表達式以匹配非ASCII字符?

蕭十郎 2019-11-22 15:40:16
在Linux上,我有一個包含大量文件的目錄。其中一些具有非ASCII字符,但它們都是有效的UTF-8。一個程序有一個錯誤,使其無法使用非ASCII文件名,因此我必須找出有多少錯誤。我打算這樣做find,然后執行grep打印非ASCII字符,然后執行a wc -l查找數字。不必是grep;我可以使用任何標準的Unix 正則表達式,例如Perl,sed,AWK等。但是,是否存在“不是ASCII字符的任何字符”的正則表達式?
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

這將匹配一個非ASCII字符:


[^\x00-\x7F]

這是有效的PCRE(與Perl兼容的正則表達式)。


您還可以使用POSIX速記:


[[:ascii:]] -匹配一個ASCII字符

[^[:ascii:]] -匹配一個非ASCII字符

[^[:print:]] 可能就足夠了。**


查看完整回答
反對 回復 2019-11-22
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

不,[^\x20-\x7E]不是ASCII。


這是真正的ASCII:


 [^\x00-\x7F]

否則,它將修剪掉換行符和ASCII表中的其他特殊字符!


查看完整回答
反對 回復 2019-11-22
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

[^\x00-\x7F]并且[^[:ascii:]]錯過了一些控制字節,因此有時字符串可能是更好的選擇。例如,cat test.torrent | perl -pe 's/[^[:ascii:]]+/\n/g'它將對您的終端產生奇怪的影響,strings test.torrent并表現正常。


查看完整回答
反對 回復 2019-11-22
  • 3 回答
  • 0 關注
  • 1098 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號