Linux的文件检索或者日志文件关键字搜索应该是很常用的工作场景, 这里汇总常见的命令用法.

find

以文件名查找.

# 只查找特定文件

find . -type f -name '*.py'

# 只查找特定文件

find . -type f -name '*.py'

# 在所有目录查找特定文件名

find / -type f -name httpd.conf

# 忽略大小写

find . -iname

# 忽略目录

find / -xdev -type f -size +100M

find / -size +100M -not -path '/proc/*'

# 指定递归深度

-maxdepth 1

# 文件名包含aaa和不包含bbb

-name "*aaa*" ! -name "*bbb*"

# 以文件owner过滤

-user xulz

查找大文件

# large-file.sh

find / -type f -not -path '/proc/*' -size +100M -exec ls -lh {} \;|sort -rh -k5

find / -xdev -type f -size +100M -exec ls -lh {} \;|sort -rk5

find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

# 支持文件名含空格

find $1 -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head

# 执行更快

find $1 -type f | xargs stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head

统计代码行数

find . -name ‘.py’ | xargs wc -l

(find ./ -name '.py' -print0 | xargs -0 cat)|wc -l

# 注: -print0 | xargs -0 == -X 规避特殊字符

grep/egrep

基于文件内容查找.

grep {{search_string}} {{path/to/file}}

grep [OPTIONS] PATTERN [FILE…] grep [OPTIONS] “text string to search” directory-path

-w # 匹配单词

-i # 忽略大小写

-color

-R, -r #recursively, 递归的查找子文件夹

-n # 显示行号

-a, --text # 把二进制文件当作text处理

--exclude: --exclude=*.o

--include: --include=*.{c,h} # 只检索匹配的文件

--exclude-dir: --exclude-dir={dir1,dir2,*.dst}

--include-dir:

-o # 只显示匹配行

-l # 只显示匹配文件名

| # 匹配多个

# 查找某IP

grep -w '127.0.0.1' my.properties

grep -wrl '127.0.0.1' my.properties | xargs sed -i 's/127\.0/192\.168/g'

显示上下文

-B num # 显示匹配前多少行

-A num # 显示匹配后多少行

# 示例

grep -B 3 -A 2 foo README.txt

# 如果显示相同行的上下文,可使用

-C num

# 或者

-n

查找某时间区间

grep "31/Mar/2002:19:3[1-5]" logfile

egrep '^[^ ]+ (0[89]|1[0-9]|2[012]):'

# awk的方式

awk -v from="12:52:33" -v to "12:59:33" '$1>=from && $1<=to' foo.log

awk '$0 >= "13/05/13 07:50" && $0 <= "13/05/23 01:58"'

# sed的方式

sed -rne '//,// p'

# 示例

sed -n '/Feb 23 13:55/,/Feb 23 14:00/p' /var/log/mail.log

sed -n '/Feb 21 23:08:19/,/Feb 21 23:08:23/p' daemon.log

awk/sed

# 显示除第一行以外的其他内容,实际上不会改变原文件

sed '1d' log.txt

awk 'NR>=10&&NR<=20' in.log > out.log

sed -n '100,1000 p' in.log > out.log

sed

sed -i ’s/foo/bar/gI' hello.txt

-i 直接替换原文

-i.bak 同时保存备份

s 替换

/ 分割符,也常用+代替

g 全局替换而不是第一项

I 不区分大小写

# 输出带填充的数字序列

seq -w 1 15

seq -f "%05g" 1 15

sort/uniq/cut/tr

sort

-n 以数字而非字母排序

-h 更可读的方式显示

-r 倒序排列

-k 5 第五列

-t, –field-separator=SEP # 指定分隔符

-s, –stable # 稳定排序,用于多列排序

uniq

-u 只显示唯一行

-d 只显示重复行

-c 显示重复次数

cut

-d':' 以冒号为分隔符,默认分隔符为tab

-f1-4 选取1~4列

tr 转换/替换/删除字符

tr -d 'input-characters' # 删除字符

tr -s '\n' # 把重复字符压缩为一个,s代表squeeze

tr "[:lower:]" "[:upper:]" < filename # 转换大小写

tr -cd "[:print:]" < filename # 取消非打印字符, c代表complement

扩展

xargs

xargs [options] [command] 构造参数列表然后执行. 将标准输入或管道转换为命令行的参数,如果省略command则默认使用echo. 通常用作替代find的-exec参数,因为xargs如果出错不会停止执行.

常用选项:

-0 ,–null 以空字符为结束符, 和find -print0结合使用 -I_ 以_为替换字符

-L max-lines 最多个非空行执行一次

-I replace-str 替换字符串,以换行符为分割符

-exec

系统包查找

yum

# 查找包含某命令的包

yum provides mpstat

# 查询安装包名

rpm -qpi ***.rpm

资源

linux 搜索s开头的文件,Linux文件查找/内容搜索命令相关推荐

  1. vscode 文件夹中查找_vscode搜索所有文件夹中所有文件的方法

    最近在看opencv相关的内容,看到画图这一部分时,提示我  这些代码都来自OpenCV代码的sample文件夹. 按照他的提示,我打开了相应的文件夹,却发现,so many 文件 and 文件夹,这 ...

  2. linux从文件中匹配查找内容

    命令说明 find ./ -name "文件名或匹配规则" | xargs grep "查找内容" 示例 find ./ -name "*.sh&qu ...

  3. 文件夹下Excel内容搜索(Python)

    基于 PyQt5 和 xlrd 库实现 https://github.com/moneypi/SearchExcel.git 界面模仿 Everything 实现,无需点击搜索按钮,搜索框输入内容会自 ...

  4. linux在文档中查找内容,【Linux】用grep在文档中查找内容

    有时候,我们需要在文档中查找一些内容,常用grep.它在文档查找相关内容并输出匹配行. > 查找某关键字 在system.log中,查找包含keyword的行 grep 'keyword' sy ...

  5. linux查找某时间后的关键字,linux - 查找指定时间的文件及文件中的关键字

    Linux查找某个时间内的文件 1.? n天内修改的(-ctime) find . -type f -ctime -1| xargs ls –l 说明: (1) -type f 只搜索文件,不包含文件 ...

  6. 比Everything更强的文件搜索工具,支持文件名、文件内容和文件图片上的文字搜索,文件内容搜索工具,文件图片内容搜索工具,OCR图片文本识别搜索,文件快速搜索工具,文字识别文件搜索工具

    Windows自带的文件搜索功能想必不需要过多吐槽,搜索速度简直是在龟爬,所以小编很早之前就在用Everything进行文件搜索了,不过,今天的主角不是它,而是比它更更更更更强的一款软件! 这款软件适 ...

  7. Ubuntu 在文件夹下查找文本文件中的关键字

    有时候在 Ubuntu 的命令行里,需要在一堆文本文件中查找特定的关键字, 一个一个文件打开找很麻烦的,这里介绍一个在文件夹下查找关键字的命令. find path -name 'file_name' ...

  8. Linux学习命令汇总三——Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式...

    本章Blog相关Linux知识点 解析:在数据库按搜索码查找相对应的条目,并找与之对应额外的其他数据库的过程:名称解析:UID ,组名解析:GID 数据库:文本文件,sql数据库,ldap数据库,用户 ...

  9. linux 删除o开头的文件,linux实现除了某个文件或某个文件夹以外的全部删除

    比如一个目录下有1,2,3,4,5这五个文件,现在我需要删除除了2以外的所有文件,那么我可以使用 find . ! -name 2 -exec rm -f {} \; 当然你还可以配合着 -maxde ...

  10. more 目录linux,linux(二)目录结构、文件基本操作cat\more\less、环境变量、文件搜索...

    linux 目录结构及文件基本操作 linux文件结构: FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织 ...

最新文章

  1. Mysql提示缺少表的别名报错_mysql对sql中别名引起的Column not found问题
  2. 大型网站技术架构03
  3. [html] html5的游戏引擎你了解多少?都有哪些比较好用的引擎呢?
  4. nyoj 586 疯牛(二分+贪心)
  5. Oracle提供的序号函数
  6. linux ora-00119,Linux oracle ORA-00119 和 ORA-00132
  7. SharePoint 2010--为WebPart创建自定义属性
  8. 筛选数据库_快速研读国外专利,轻松筛选核心技术…研发人必看6大数据库实用功能盘点!...
  9. CTFHUB技能树-Misc-流量分析-ICMP
  10. 在 CentOS 上安装 Docker 引擎
  11. C#之AutoCAD文本字体样式设置
  12. 中国国航往返飞机票怎么改签
  13. 苹果零售店被指销售翻新机
  14. 移动网络通信技术【移动电话网络介绍】
  15. 如何修复vagrant up失败错VBoxManage: error: The machine is already locked for a session (or being unlocked)
  16. 论文被引上千次,GitHub 开源6000星,他们是首届字节跳动奖学金获奖者
  17. 清橙OJ A1035 素数之和
  18. PPT文件如何解决不能编辑的问题
  19. 区块链跨链技术之BTC Relay
  20. Python基础 by.肖洪福

热门文章

  1. CentOS官网下载所需版本的CentOS版本方法
  2. SQL练习题——店铺UV、访客信息
  3. 使用Python进行网站页面开发——Django快速入门
  4. 美国加州计算机专业大学排名,USNews美国计算机专业大学排名
  5. 接口测试平台代码实现11: 用户管理模块设计和开发
  6. MACD-DKJ金叉选股、金蜘蛛选股、均线粘合公式
  7. 怎样才能演示正弦和余弦的相互变换
  8. 怎样查看计算机注册表上的游戏,win7 32位旗舰版电脑中如何通过注册表修复游戏登陆问题...
  9. 纯JS实现倒序九九乘法表 for循环
  10. 攻防世界 reverse新手题 logmein