grep抓取中文字串時... - Linux

Table of Contents

大家好, 最近在做一些文書上的處理
想使用grep把文件內的中文字串抓出來比對

可是當我使用
$ grep -w "一" filename

這樣會把 單一 周一 這種以"一"結尾的word也一併抓出...@_@"

如果使用
$ grep -w "^一" filename

會抓到 一‧零零五 這種"一"後面帶著特殊符號的word

如果用
$ grep -w "^一$" filename

就甚麼東西都找不到了 =.=

我的資料格式是
[word] 空白 [count] 空白 [prob]

所以我也試過"^一\s"
不過也是甚麼東西都抓不到...

之前是用C寫, 配合BinarySearch來找.
但感覺速度比grep還要慢=.=

請問有人有比較好的解決法嗎?

--

All Comments

Tracy avatarTracy2010-10-03
你想要抓出的是只有 一 這樣的東西嗎?
Ida avatarIda2010-10-04
覺得好像應該改用egrep
Sarah avatarSarah2010-10-08
回一樓, 沒錯~~
Sarah avatarSarah2010-10-11
回2F, 我試過了...Q_Q 不知道跟Big5有沒有關係
Hamiltion avatarHamiltion2010-10-15
grep -w " 一 " filename 這樣不知道行不行 XDDD
前後各留個空白這樣 不過行首行尾要另外處理
Emily avatarEmily2010-10-18
linux預設編碼是utf-8,要不要先用iconv轉檔看看?
Donna avatarDonna2010-10-21
那分兩次呢 先找 ^一 再找 一$
Irma avatarIrma2010-10-26
" 一 " 可以吧..英文的可以