2013年8月29日 星期四

find 、grep 、 xargs 搭配應用:



在Linux中,常常在Debug時要找字串,但是他可能又分在好多子目錄當中,而你也不知道到底在哪裡,這時候該怎辦??

------------------------------------------------------------------------------

假設我要在根目錄的所有子目錄下搜尋所有.c檔裡含有字串

” YinChenWang“ 的需求,下面有兩種方法:



1. $ sudo find / –name “*.c” -exec grep “YinChenWang” {} \;

2. $ sudo find / –name “*.c” | xargs grep “YinChenWamg”



說明:


  • 法1:
         他會根據 “/ “ 這個根目錄(包括所有子目錄)去尋找所有附檔名為.c

         的檔案,接著後面的 –exec 與 最後面的 \; 是一體的,裡面包的就是

         grep “YinChenWang” {} ,而{}裡面就是存放前面find所找到的所有.c檔,

         這樣大概懂意思了嗎? 也就是說-exec \; 這中間包的東西可以很多

         變化,例如你也可以使用rm或cp等等的搭配前面的find做不同應用,

         想看更詳細請參考

         鳥哥的Liunx 私房菜: http://linux.vbird.org/linux_basic/0220filemanager.php#find

  • 法2:
        其實效果與法1類似,其中用到了”xargs” ,他可以將前面find後的輸出結果,

        來當做你xargs後面所接的參數,以此例子來看,

        find後輸出的結果將會透過xargs來提供給grep “YinChenWang”使用。

        xargs的詳細說明請參考:

        xargs 應用介紹:   http://blog.yam.com/ddy1280/article/13941218

沒有留言:

張貼留言