linux搜索文件内容含有星号,文本内容查找grep、文件查找find、正则匹配

一、文本内容查找工具 grep

grep   egrep (文本过滤)   fgrep (不支持正则)

对文本的内容按照指定的匹配模式基于行来进行筛选

格式     grep [选项] 模式 文件

选项:

-v:反向匹配,显示不能被模式匹配到的行

-o:仅匹配被模式匹配到的字符串,而非整行

-q:静默模式

-i:不区分大小写,ignore-case

-E:支持扩展(相当于egrep)  grep -E = egrep

根据正则表达式进行匹配查找

1、点 .   :  任意单个字符

e9b9e30032d5e61aa7d7d36c69804706.png

2、[ ]  : 指定[ ]范围内的任意单个字符

[0-9],[[:digit:]] 匹配任意单个数字

0b88edc1192e0a035ff1d101db6a4dcd.png

[a-z],[[:lower:]] 匹配任意单个小写字母

3fb96c8569e4b855c95d4ee8e373ae9f.png

[A-Z],[[:upper:]] 匹配任意单个大写字母

47d4936e057d575f4df08d0efb5dd4fd.png

所有的字母:[[:alpha:]]

9e5da0c4f826f638c2c46e36096dfbe4.png

字母+数字:[[:alnum:]]

0f21c319898ae7988c9610366e350650.png

空格:[[:space:]](空格不等同于空行)

5dfc967f243e2b6538829d884c00046d.png

标点符号字符:[[:punct:]]

d526b305d613e81aab14748cd6e29c0f.png

[^]: 指定范围外的任意单个字符

ed9dd68846dcc9fe9c3cc268cfdf251c.png

3、次数匹配:用来指定匹配其前面的字符的次数

*  : 星号前面的一个字符出现0次或n次

31c21aae3912961086916e52f45c71a1.png

.*  : 匹配任意长度的任意字符

ffbddaa21be792c83413829ff14e49da.png

\?  : 问号前面的一个字符出现0次或者1次  \转义

55012328bf328f4950b37808db93700a.png

\+  : 前面字符至少1次  (1次到n次)

a7ad7cbc47590df726ae910f1d92c774.png

\{m\}  : 匹配m次

c58d486268360c7bd691c06e00becf0f.png

\{m,n\}  : 至少m次,至多n次

0bb5f5a5f2134ec1a2a93cab76052b44.png

\{m,\}  :  至少m次

fca067954db7012d7f2fd084eded30cb.png

\{,n\}  :  至少0次,至多n次

1d33a25d67df972525c282cd14806af9.png

4、位置锚定:用于指定字符出现的位置

^   : 锚定行首 ^char

1a19f6a774ce18a5622b7dcc86824e59.png

$   : 锚定行尾 char$

f6898959a45df68dac01fcf9cc395ac2.png

^$  : 空白行

13218e059f47e2cef819280e12be6139.png

5、单词的位置锚定

\

char\>  : 锚定单词词尾

c7a73c7d6d5ef958fd0fd476c5b2e1a9.png

6、egrep:支持扩展正则表示({} , (), ?, +可以不用转义) 等价于:grep -E

bf6497d0c1754d3d8d04b408bcce00bb.png

二、管道操作

管道:

Linux:

程序=指令+数据

使用目的单一的小程序

组合小程序完成复杂的任务

指令1 | 指令2 | 指令3

| 左边命令的输出作为 | 后边命令的输入

Linux 中不是所有命令都支持管道,不支持管道的命令:cd  rm  find ...

ea59182f506508d01ccab4977a73eb6b.png

三、文本内容处理命令 wc, tr, cut, sort

1、wc:即 word count

ctrl+d 提交

行 单词数 字节数

wc[option][file]...

-l:统计行数

-c:统计字节数

-w:统计单词数

17415cfcffcde86c7ee7f64c211a4c72.png

2、tr:转换或删除字符,tr ‘集合1’ ‘集合2’,必须使用管道

转换字符:会把第一个字符集的对应转换为第二个字符集中的对应转换

bcf312e18527d6d65293005d90d712cb.png

-d:删除出现过的字符集

5a4d62aeb601b4ddc40c343303eb5571.png

3、cut:根据指定的分隔符切片,并显示出需要显示的片

-d字符:指定分隔符

-f (field)   数字:指定要显示的字段

单个数字:一个字段

多个离散字段:逗号分隔

多个连续字段:-分隔

330b8ad4c35e665b0b97043b62574338.png

4、sort:按字符进行比较

格式 sort[options] FILE

-f:忽略大小写

-n:对数字进行排序

-t:指定分隔符

-k数字:指定分隔后进行排序字段列号

-u:重复的行,只显示一行

-r:倒序排列

例题:查询用户,按照编号从大到小的顺序排列,取编号最大的前5名,列出用户名和编号

b34643984a95e13ee20763aedf60619a.png

四、文件查找---------find命令

①:根据文件名  -name  -iname(忽略大小写)

501517cbf295beef0135d1ec47f9014e.png

②:根据属主属组查找

-user username  根据属主查找

-group grpname  根据属组查找

9c380e1b226e52b75715879b403e6617.png

可接组合条件 -a而且 -o或者:find /home -user root -a -group root  属主和属组都是root的

③:根据文件类型查找   -type

81b0f0fb31716c0f99d06926945cf855.png

④根据文件的大小来查找   -size

038dc28f28cd46d311513d49fb85d1d7.png

⑤根据时间戳来查找  -atime  -mtime   -ctime (单位天,如果按照-mmin)

8470a3e4bd3f4e0385e808b723dab1a8.png

五、查到后的处理动作

①:打印(默认)

-print  默认

-fls  自定义

把输出结果打印到output.txt中

0f3cbdf08f991ea28398a20f0d8c231b.png

②:查询属性信息(类似ls -l)  -ls

b7efe532ea0376a3cd868987a4105d89.png

③:删除  -delete

7ce3ff5b60913504ae772021a57b7041.png

④:后接命令(交互) -ok

951397421ca21c4cda970ccd369187be.png

⑤:后接命令(不交互) -exec cmd {} \;

6eeb4d3851cf0780bcfd32abbdef426c.png

六、让find命令支持管道(xargs命令)

find命令不支持管道,但是可以使用xargs命令强行驱动可以使用管道

41541d189d1fd88ac0a8d4d77cf1f668.png

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值