精華區beta RegExp 關於我們 聯絡資訊
想請教一個問題 環境為shell 我有一堆lib,其中有些名稱具有'-'的字元 我想把有'-'字元的挑掉不要 原本的寫法是這樣:.*[^-].* 但是經過測試好像並沒有過濾掉 所以想請問一下,這是特殊字元嗎? 如果不是的話,又應該如何處理? 還請各位先進指點一下,謝謝 -- Ultimate Treein ˍˍ ▕慕京▏ ▕子印▏  ̄ ̄ http://septemhill.blogspot.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.74.245.163
bibo9901:是的, 要escape [^\-] 10/14 21:15
godman362:我使用awk的時候,卻不允許我這樣處理? 10/15 10:55
godman362:我是這樣寫的: ls | awk '/.*[^\-].*/ { print $0 }' 10/15 10:56
godman362:請問這樣有哪邊出錯了嗎? 10/15 10:56
evernever:對 awk 不熟, 但可以試試'/.*[^\\-].*/ ...' 多一個\ 10/15 19:05
godman362:找出來的結果還是不符合我想要得答案 10/15 19:08
godman362:後來我使用:ls | awk '!/.*[^-].*/ {print $0 }' 10/15 19:09
godman362:直接用反向搜尋法過濾出我想要得答案 10/15 19:09
godman362:不過這樣的作法好像就不太符合正規表示法的用法了 10/15 19:10
badwork:試試 ^[^-]*$ 從頭到尾所有字元都沒出現-的會match到 10/15 23:00
evernever:檔案名從頭到尾都沒有'-'應該是 /^[^-]+$/ 10/16 04:57
evernever:在Cygwin, Awk 3.1.6 測試 Ok. 10/16 04:58
evernever:sorry 測試完才看到跟 badwork 大的答案是一樣的 = = 10/16 05:01
godman362:謝謝b大和e大,已經成功測出來了 10/16 07:43