Files
搜尋包含字元串的文件並按修改日期列出其名稱
我使用此命令在包含特定字元串的目錄中查找所有文件:
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