Files

搜尋包含字元串的文件並按修改日期列出其名稱

  • April 12, 2017

我使用此命令在包含特定字元串的目錄中查找所有文件:

grep -lir "string" path_to directory

例子

grep -lir "users" /var/www/mysite

此命令顯示指定目錄中包含字元串 ‘users’ 的所有文件。但是,我想按修改日期降序對它們進行排序;最新到最老。

有什麼幫助嗎?

首先我們使用該Z選項,然後在另一端使用 -0 選項的 xargs 將擷取文件名並統計它們,排序並刪除時間資訊以顯示排序後的最新第一個列表。

grep -Zlir users /var/www/mysite | xargs -0 -r stat --format='%Y+%n' | sort -t+ -k 1,1nr | cut -d+ -f2-

zsh

print -rl ./**/*(.De_'grep -qi "string" $REPLY'_om)

這使用glob 限定符僅選擇.包含string(即表達式e_'grep -qi "string" $REPLY'_返回的 glob 結果)的正常文件(),true然後通過(最新的優先)om對最終結果進行排序。如果您不想搜尋隱藏文件,請mtime刪除。D

引用自:https://unix.stackexchange.com/questions/358544