ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文本处理三剑客 - grep

2022-07-18 19:33:02  阅读:125  来源: 互联网

标签:mapper grep dev 文本处理 num linux rl root 三剑客


一剑客 grep

grep:Global search REgular expression and Print out the line

作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行

模式:由正则表达式字符及文本字符所编写的过滤条件

# 格式
grep [OPTION]... PATTERN [FILE]...

# 选项
--color=auto:对匹配到的文本着色显示
-m num:匹配num次后停止
-v:显示不被pattern匹配到的行,即取反
-i:忽略字符大小写
-n:显示匹配的行号
-c:统计匹配的行数
-o:仅显示匹配到的字符串
-q:静默模式,不输出任何信息
-A num:after, 打印匹配行的后num行
-B num:before,打印匹配行的前num行
-C num:context, 打印匹配行前后各num行
-e:实现多个选项间的逻辑or关系
-w:匹配整个单词
-E:使用ERE,相当于egrep
-F:不支持正则表达式,相当于fgrep
-P:支持Perl格式的正则表达式
-f file:根据模式文件处理
-r:递归目录,但不处理软链接
-R:递归目录,但处理软链接

范例

1. 取两个文件的相同行

[root@linux ~]# cat test1.txt 
a
b
1
c
[root@linux ~]# cat test2.txt 
b
e
f
c
1
2
[root@linux ~]# grep -f test1.txt test2.txt 
b
c
1

[root@linux ~]# cat test1.txt test2.txt | sort | uniq -d
1
b
c

2. 分区利用率最大值

[root@linux ~]# df
文件系统                1K-块    已用      可用 已用% 挂载点
devtmpfs               966744       0    966744    0% /dev
tmpfs                  996036       0    996036    0% /dev/shm
tmpfs                  996036    9356    986680    1% /run
tmpfs                  996036       0    996036    0% /sys/fs/cgroup
/dev/mapper/rl-root  73364480 6131808  67232672    9% /
/dev/mapper/rl-home 133071376  960932 132110444    1% /home
/dev/nvme0n1p1        1038336  298156    740180   29% /boot
tmpfs                  199204      12    199192    1% /run/user/42
tmpfs                  199204       0    199204    0% /run/user/0
[root@linux ~]# df | tail -n +2 | tr -s ' ' | cut -d ' ' -f 5 | sort -nr | tr -d % | head -3
29
9
1

[root@linux ~]# df | grep '^/dev' | tr -s ' ' % | cut -d % -f 5 | sort -nr
29
9
1

3. 过滤注释和空行

[root@linux ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Jul 11 21:02:24 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=515800b1-a654-40b9-9067-a9892ddeb62d /boot                   xfs     defaults        0 0
/dev/mapper/rl-home     /home                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0
[root@linux ~]# cat /etc/fstab | grep -Ev '^#|^$'
/dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=515800b1-a654-40b9-9067-a9892ddeb62d /boot                   xfs     defaults        0 0
/dev/mapper/rl-home     /home                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0

面试题:年龄总和

[root@linux ~]# cat age.txt 
xiaoming=20
xiaohong=18
xiaoqiang=22
[root@linux ~]# cat age.txt | grep -Eo '[0-9]+' | paste -s -d+ | bc
60

标签:mapper,grep,dev,文本处理,num,linux,rl,root,三剑客
来源: https://www.cnblogs.com/c-fikt/p/16491715.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有