簡體   English   中英

基於時間戳的grep文件

[英]grep files based on time stamp

這應該很簡單,但我不知道它。 我在Linux下擁有超過4GB的大型代碼庫。 在構建期間生成一些頭文件和xml文件(使用gnu make)。 如果重要,頭文件是基於xml文件生成的。

我想在頭文件中搜索一個關鍵字,該關鍵字是在時間實例(我的開始編譯時間)之后最后修改的,以及類似的xml文件,但是單獨的grep查詢。

如果我在所有可能的頭文件或xml文件上運行它,則需要花費很多時間。 只有那些自動生成的。 此外,搜索必須是遞歸的,因為有很多目錄和子目錄。

您可以使用find命令:

find . -mtime 0 -type f

打印在過去24小時內修改的當前目錄( . )中和下面的所有文件( -type f )的列表( -mtime 0將是48h,2將是72h,...)。 嘗試

grep "pattern" $(find . -mtime 0 -type f)

要在當前目錄及其子目錄中比some_file更新的所有文件中以遞歸'pattern'查找'pattern'

find -newer some_file -type f -exec grep 'pattern' {} +

您可以直接以date -d格式指定時間戳,並使用其他find測試,例如-name-mmin

如果find太慢,您的構建系統也可能生成文件列表。

可以使用更具體的工具,如acketagsGCCSense而不是grep

用這個。 因為如果find沒有返回文件,那么grep將繼續等待輸入暫停腳本。

find . -mtime 0 -type f | xargs grep "pattern"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM