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

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

如何grep所有非ASCII字符?

如何grep所有非ASCII字符?

如何grep所有非ASCII字符?我有幾個非常大的XML文件,我試圖找到包含非ASCII字符的行。我嘗試過以下方法:grep -e "[\x{00FF}-\x{FFFF}]" file.xml但是這會返回文件中的每一行,無論該行是否包含指定范圍內的字符。我的語法有錯嗎?或者我做錯了什么?我也嘗試過:egrep "[\x{00FF}-\x{FFFF}]" file.xml(模式周圍有單引號和雙引號)。
查看完整描述

3 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

您可以使用以下命令:

grep --color='auto' -P -n "[\x80-\xFF]" file.xml

這將為您提供行號,并以紅色突出顯示非ascii字符。

在某些系統中,根據您的設置,上述操作無效,因此您可以通過反向操作

grep --color='auto' -P -n "[^\x00-\x7F]" file.xml

另請注意,重要的位是-P等于的標志--perl-regexp:因此它將您的模式解釋為Perl正則表達式。它也說

這是高度實驗性的,grep -P可能會警告未實現的功能。


查看完整回答
反對 回復 2019-08-29
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

正如大多數上述解決方案所做的那樣,不是對非ASCII字符的字節范圍做出假設,而是明確更好地了解ASCII字符的實際字節范圍。

所以第一個解決方案將成為:

grep --color='auto' -P -n '[^\x00-\x7F]' file.xml

(基本上對于十六進制ASCII范圍之外的任何字符進行greps:從\ x00到\ x7F)

在Mountain Lion上無法工作(由于缺少BSD grep中的PCRE支持),但是pcre通過Homebrew安裝,以下內容也可以正常工作:

pcregrep --color='auto' -n '[^\x00-\x7F]' file.xml

任何人可以想到的任何利弊?


查看完整回答
反對 回復 2019-08-29
  • 3 回答
  • 0 關注
  • 1248 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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