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

看板Linux作者 (有種東西叫方向燈)時間13年前 (2010/11/15 23:36), 編輯推噓1(107)
留言8則, 5人參與, 最新討論串1/2 (看更多)
想請教一個問題 小弟最近要查 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) ※ 編輯: aisme21 來自: 114.198.168.77 (11/16 00:57)

11/16 01:04, , 1F
grep -l "RUN " a*.4gl|grep -v "\-\-RUN"
11/16 01:04, 1F

11/16 03:20, , 2F
to suzuke: 可以執行,但仍然把--RUN的檔案給帶出來
11/16 03:20, 2F

11/16 09:41, , 3F
grep -l "RUN " a*.4gl| xargs grep -v "--RUN"
11/16 09:41, 3F
他和原文中 grep -l "RUN " a*.4gl|grep -v "--RUN" 的結果是一樣的 illegal option 如果改成 xargs grep -v "\-\-RUN" 不但會將--RUN的程式給LIST出來,也把程式內容也SHOW出來 ※ 編輯: aisme21 來自: 114.198.168.77 (11/16 11:38)

11/16 13:59, , 4F
... | grep -v '^--RUN' 這樣?
11/16 13:59, 4F

11/16 14:45, , 5F
grep -v -- --run
11/16 14:45, 5F

11/16 15:01, , 6F
你是要找內容有"RUN ", 但是沒有"--RUN" 的檔名嗎?
11/16 15:01, 6F

11/16 15:32, , 7F
回樓上,是的
11/16 15:32, 7F
可以請各位大大先不要鞭我嗎? 剛住意到有--RUN的程式,裏面也夾雜RUN開頭的行,我沒 有看,只看到第一個搜尋到的RUN = =" 真的很抱歉呀,先留言致歉一下。 我趕緊TRY各位大大提供的指令試試,是那一個能找到正確的檔案,稍後再來更新。 ※ 編輯: aisme21 來自: 210.202.210.251 (11/16 15:53) @@ 雖然我的發現,但還是沒能改變結果,我把目錄下檔案數縮到只有二個在找,因為以上 的指令(含kdjf大提供的 -- --第一次看到)同樣都會把單純只有--RUN開頭的或RUN開頭的 檔案都LIST出來。要不,就是 permission denied ※ 編輯: aisme21 來自: 210.202.210.251 (11/16 16:02)

11/16 17:14, , 8F
試試 grep -l "RUN " a*.4gl |xargs grep -L "\-\-RUN"
11/16 17:14, 8F
grep: illegal option -- L man grep 沒有L選項。 附帶一提,我的作系統AIX ※ 編輯: aisme21 來自: 210.202.210.251 (11/16 17:43)
文章代碼(AID): #1CuLDlLF (Linux)
文章代碼(AID): #1CuLDlLF (Linux)