2014-01-27 193 views
0

我只想grep的整個單詞。問題是文件包含非英文字符,因此grep -w不起作用(f.e.在搜索「bc」時匹配「aąbcć」)。我也不能寫任何工作正則表達式。有誰能夠幫助我?grep只匹配與非英文字符的整個單詞

+0

FYI:HTTP:// stackoverflow.com/questions/9618647/allowing-non-latin-characters-with-regex – mcsilvio

+0

你的語言環境是什麼? 'env | grep「可以LC \ | LANG'' –

+0

'LC_MESSAGES = pl_PL.UTF-8 LC_COLLATE = pl_PL.UTF-8 LANG = pl_PL.UTF-8 LANGUAGE = pl_PL:EN LC_CTYPE = pl_PL.UTF-8 ' – BUZZY

回答

0

嘗試使用單詞邊界的grep:

grep "\<bc\>" file 
+0

'echo -e「aąbcć\ nbc」| grep「\ 」'給我兩場比賽。有一件事改變了:第一行不再着色。 – BUZZY

+0

很奇怪,因爲我只能從這個命令中獲得1個匹配。 – anubhava

+0

但我正在'Mac OSX'上測試它。 – anubhava

0

需要GNU的grep:grep -P '(^|\s)\Kbc(?=$|\s)' file

用awk,不知這會工作:

awk -v word="bc" '{for (i=1; i<=NF; i++) if ($i == word) {print; break}}' file 
+0

我需要整行存在單詞。 – BUZZY

+0

不幸的是,「bc」在awk解決方案中沒有通過測試。 – BUZZY