[問題] grep抓取中文字串時...

看板Linux作者 (豆腐喵的勒)時間13年前 (2010/09/29 12:09), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
大家好, 最近在做一些文書上的處理 想使用grep把文件內的中文字串抓出來比對 可是當我使用 $ grep -w "一" filename 這樣會把 單一 周一 這種以"一"結尾的word也一併抓出...@_@" 如果使用 $ grep -w "^一" filename 會抓到 一‧零零五 這種"一"後面帶著特殊符號的word 如果用 $ grep -w "^一$" filename 就甚麼東西都找不到了 =.= 我的資料格式是 [word] 空白 [count] 空白 [prob] 所以我也試過"^一\s" 不過也是甚麼東西都抓不到... 之前是用C寫, 配合BinarySearch來找. 但感覺速度比grep還要慢=.= 請問有人有比較好的解決法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.144.57

09/29 12:10, , 1F
你想要抓出的是只有 一 這樣的東西嗎?
09/29 12:10, 1F

09/29 12:28, , 2F
覺得好像應該改用egrep
09/29 12:28, 2F

09/29 12:39, , 3F
回一樓, 沒錯~~
09/29 12:39, 3F

09/29 12:46, , 4F
回2F, 我試過了...Q_Q 不知道跟Big5有沒有關係
09/29 12:46, 4F

09/29 12:49, , 5F
grep -w " 一 " filename 這樣不知道行不行 XDDD
09/29 12:49, 5F

09/29 12:49, , 6F
前後各留個空白這樣 不過行首行尾要另外處理
09/29 12:49, 6F

09/29 13:17, , 7F
linux預設編碼是utf-8,要不要先用iconv轉檔看看?
09/29 13:17, 7F

09/29 17:02, , 8F
那分兩次呢 先找 ^一 再找 一$
09/29 17:02, 8F

09/30 11:09, , 9F
" 一 " 可以吧..英文的可以
09/30 11:09, 9F
文章代碼(AID): #1CehlvLN (Linux)