Re: [問題] grep 跳脫字元? → "--"

看板Linux作者 ( )時間13年前 (2010/11/16 16:24), 編輯推噓1(109)
留言10則, 2人參與, 最新討論串2/2 (看更多)
我試了一下 $ echo run >a $ echo --run >b $ echo xxxx >c $ echo xx --run >d $ grep -l run * a b $ grep -vl run * c $ grep -l run * | xargs grep -vl -- --run a $ grep -l run * | xargs grep -vl -- ^--run a d 我跑得好好的啊? ※ 引述《aisme21 (有種東西叫方向燈)》之銘言: : 想請教一個問題 : 小弟最近要查 call 與 RUN 寫在程式中是不是會因為 RUN 程式名稱,所以會多了一個 : sessionID,而call function卻不會的問題。 : 所以我在grep系統的程式要grep -l "RUN " a*.4gl : 但我同時不要前面有註解"--RUN" 有二個 dash符號打頭的那一行, : 可是我現在command下 : grep -l "RUN " a*.4gl|grep -v "--RUN" : 它會出現↓ : grep: illegal option -- - : grep: illegal option -- R : grep: illegal option -- U : grep: illegal option -- N : usage: grep [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] -e pattern_list... : [-f pattern_file...] [file...] : usage: grep [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] [-e pattern_list...] : -f pattern_file... [file...] : usage: grep [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] pattern_list : [file...] : 如果改成了 : grep -l "RUN " a*.4gl|grep -v "\--RUN" : 它會執行,但仍然把 --RUN 打頭的程式給list出來,所以沒有達到grep -v的目的 : 所以我該怎麼下? : 我也試過 grep -l "RUN " a*.4gl|`grep -v "\--RUN"` : ksh: ac001.4gl: 0403-006 Execute permission denied. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.245.32

11/16 17:49, , 1F
好奇怪, grep -l run*,不是應該abc,怎麼才ab而已
11/16 17:49, 1F

11/16 17:54, , 2F
講錯,是 abd
11/16 17:54, 2F

11/16 18:15, , 3F
*是上個字重復>=0次, shell中的"*"=>regex中的".*"
11/16 18:15, 3F

11/16 19:13, , 4F
我也覺得很怪,試了那麼多指令,還是把--RUN的檔案LIST
11/16 19:13, 4F

11/16 21:02, , 5F
你叫grep把找到的字印出來好了,說不定哪了.*RUN的東西
11/16 21:02, 5F

11/16 22:02, , 6F
不過我手動vi去找RUN,確認過無其他RUN*的關係字
11/16 22:02, 6F

11/16 22:08, , 7F
看來解決的方法就是自已寫program了.... 來看看awk寫得出來否
11/16 22:08, 7F

11/16 22:21, , 8F
嗯嗯,我剛用手動去 awk '/RUN/' *,查到的結果也和我用
11/16 22:21, 8F

11/16 22:21, , 9F
vi 去搜尋的結果是一樣的,沒有其他行列有*RUN*的字串
11/16 22:21, 9F

11/16 22:22, , 10F
謝謝 k大,我再寫script去找找看
11/16 22:22, 10F
文章代碼(AID): #1CuZ-bCM (Linux)
文章代碼(AID): #1CuZ-bCM (Linux)