2013-03-11 47 views
0

我在~/script-filenames數百個混合大小寫文件名的列表,以及數以百計的文本文件進行搜索,在當前目錄中,可能包含這些文件名。使用bash找到在文本文件中的字符串,其中的情況下不匹配

目前我使用以下2個命令:

  1. 要返回所有匹配不區分大小寫:

    xargs -0 -I @ -a ~/script-filenames grep -ri @ 
    
  2. 要返回所有準確匹配:

    xargs -0 -I @ -a ~/script-filenames grep -r @ 
    

但是怎麼樣d我發現匹配時忽略大小寫的字符串,但大小寫確切時失敗的字符串?

也許有egrep的使用正則表達式和方式,但我不知道怎麼辦。

+0

'grep的-r @'你要什麼給grep?沒有? – Kent 2013-03-11 13:39:50

+0

不,xargs聲明@作爲輸入文件中的標記的替換變量。 – 2013-03-11 14:39:09

+0

是的,那麼你的命令就像'grep -r filename'吧?模式在哪裏? – Kent 2013-03-11 14:45:15

回答

1

簡單的解決方法爲你的問題可能是使用過DIFF:

xargs -0 -I @ -a ~/script-filenames grep -ri @ >hitList.IgnoredCase 
xargs -0 -I @ -a ~/script-filenames grep -r @ >hitlist.WithCase 

diff -u hitList.IgnoredCase hitlist.WithCase|grep ^+ |cut -c 2- 

的DIFF線的輸出將只包含與不精確的情況下的線。

+0

感謝使用差異的想法,一旦我有明顯可比的數據,沿着這些線的東西是有幫助的。 – 2013-03-11 21:34:46

相關問題