[問題] '-'字元

看板RegExp作者 (青)時間14年前 (2009/10/14 17:47), 編輯推噓3(3011)
留言14則, 4人參與, 最新討論串1/1
想請教一個問題 環境為shell 我有一堆lib,其中有些名稱具有'-'的字元 我想把有'-'字元的挑掉不要 原本的寫法是這樣:.*[^-].* 但是經過測試好像並沒有過濾掉 所以想請問一下,這是特殊字元嗎? 如果不是的話,又應該如何處理? 還請各位先進指點一下,謝謝 -- Ultimate Treein ˍˍ ▕慕京▏ ▕子印▏  ̄ ̄ http://septemhill.blogspot.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.74.245.163

10/14 21:15, , 1F
是的, 要escape [^\-]
10/14 21:15, 1F

10/15 10:55, , 2F
我使用awk的時候,卻不允許我這樣處理?
10/15 10:55, 2F

10/15 10:56, , 3F
我是這樣寫的: ls | awk '/.*[^\-].*/ { print $0 }'
10/15 10:56, 3F

10/15 10:56, , 4F
請問這樣有哪邊出錯了嗎?
10/15 10:56, 4F

10/15 19:05, , 5F
對 awk 不熟, 但可以試試'/.*[^\\-].*/ ...' 多一個\
10/15 19:05, 5F

10/15 19:08, , 6F
找出來的結果還是不符合我想要得答案
10/15 19:08, 6F

10/15 19:09, , 7F
後來我使用:ls | awk '!/.*[^-].*/ {print $0 }'
10/15 19:09, 7F

10/15 19:09, , 8F
直接用反向搜尋法過濾出我想要得答案
10/15 19:09, 8F

10/15 19:10, , 9F
不過這樣的作法好像就不太符合正規表示法的用法了
10/15 19:10, 9F

10/15 23:00, , 10F
試試 ^[^-]*$ 從頭到尾所有字元都沒出現-的會match到
10/15 23:00, 10F

10/16 04:57, , 11F
檔案名從頭到尾都沒有'-'應該是 /^[^-]+$/
10/16 04:57, 11F

10/16 04:58, , 12F
在Cygwin, Awk 3.1.6 測試 Ok.
10/16 04:58, 12F

10/16 05:01, , 13F
sorry 測試完才看到跟 badwork 大的答案是一樣的 = =
10/16 05:01, 13F

10/16 07:43, , 14F
謝謝b大和e大,已經成功測出來了
10/16 07:43, 14F
文章代碼(AID): #1ArPv9Z3 (RegExp)