看板 Linux 關於我們 聯絡資訊
我試了一下 $ 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
aisme21:好奇怪, grep -l run*,不是應該abc,怎麼才ab而已 11/16 17:49
aisme21:講錯,是 abd 11/16 17:54
kdjf:*是上個字重復>=0次, shell中的"*"=>regex中的".*" 11/16 18:15
aisme21:我也覺得很怪,試了那麼多指令,還是把--RUN的檔案LIST 11/16 19:13
kdjf:你叫grep把找到的字印出來好了,說不定哪了.*RUN的東西 11/16 21:02
aisme21:不過我手動vi去找RUN,確認過無其他RUN*的關係字 11/16 22:02
kdjf:看來解決的方法就是自已寫program了.... 來看看awk寫得出來否 11/16 22:08
aisme21:嗯嗯,我剛用手動去 awk '/RUN/' *,查到的結果也和我用 11/16 22:21
aisme21:vi 去搜尋的結果是一樣的,沒有其他行列有*RUN*的字串 11/16 22:21
aisme21:謝謝 k大,我再寫script去找找看 11/16 22:22