在 Linux 中搜索文本文件或文件中的文本内容,常见方法如下:
find(最常用)# 搜索当前目录及子目录下所有 .txt 文件
find . -name "*.txt"
# 不分大小写
find . -iname "*.txt"
# 只搜普通文件
find /path -type f -name "*.log"
locate(速度快,基于数据库)locate "*.txt"
若结果不全,先更新数据库:
sudo updatedb
grep(最常用)# 在文件中搜索包含 "error" 的行
grep "error" file.txt
# 递归搜索目录
grep -r "error" .
# 显示行号
grep -rn "error" .
# 忽略大小写
grep -ri "error" .
# 只显示文件名
grep -rl "error" .
grep -r "keyword" --include="*.txt" .
find . -name "*.log" -exec grep -l "error" {} \;
cat file.txt
less file.txt
head -n 20 file.txt
tail -n 20 file.txt
ack / ag(代码搜索更友好)ag "function_name"
ripgrep(rg,最快)rg "keyword"
如果你能说明:
我可以给你更精确的命令示例。