试图在多个文件中搜索关键字。但是,搜索结果不会按文件修改的日期或名称排序。
ag grep工具:
ag "keyword"
grep工具:
grep -r "keyword"
有什么方法可以控制结果,按文件、修改的日期或名称排序,如下所示?
预期输出:
File_0.txt:搜索结果
File_1.txt:搜索结果
File_2.txt:搜索结果
发布于 2019-01-31 04:24:26
只需使用ls
进行排序,并将结果传递给grep
或ag
,例如按日期排序:
grep "keyword" $(ls -1rt)
若要按名称进行排序,请使用ls
。值得注意的是,对于MacOS,您需要使用ls
(brew安装coreutils)和它的-U标志:
ag "keyword" $(gls -U --color)
#按名称在MacOS上排序
发布于 2019-01-24 21:14:45
如果使用bash
,下面是按修改日期排序grep
结果的选项:
while IFS= read -r -d '' file; do
grep -H "keyword" "$file"
done < <(find * -type f -printf "%T@\t%p\0" | sort -rz | cut -z -f2-)
find
表达式的细分:
find * -type f -printf "%T@\t%p\0" | # print last-mod date and filename, NUL-terminated
sort -rz | # sort in reverse order
cut -z -f2- # cut out time field
https://stackoverflow.com/questions/54354931
复制相似问题