Linux三剑客(上)+https://developer.aliyun.com/article/1623586
2.2、找出所有以m开头的行
[root@1-VM00013 data]# grep -i -n '^m' luffy.txt 7:my name is linghu
2.3、输出所有以m开头的行
[root@1-VM00013 data]# grep -i -n '^m' luffy.txt |grep -i -n '.* 1:7:maybe 2:9:my boy is you 3:11:my name is linghu
2.4输出所有以i开头的行
[root@1-VM00013 data]# grep -i -n '^i' luffy.txt |grep -i -n '.* 1:1:I am linghu 2:3:I teach linux 3:5:i like python
2.5找出所有允许登录的用户,解释器是/bin/bash的行
[root@1-VM00013 data]# cat /etc/passwd > ./pwd.txt [root@1-VM00013 data]# grep -n "/bin/bash$" pwd.txt 1:root:x:0:0:root:/root:/bin/bash 41:zshield:x:1000:1000:zshield:/home/zshield:/bin/bash 44:testlinghu:x:94619:94619::/home/testlinghu:/bin/bash ##只输出匹配的内容 [root@1-VM00013 data]# grep -n "/bin/bash$" pwd.txt -o 1:/bin/bash 41:/bin/bash 44:/bin/bash ##找出s匹配的内容 [root@1-VM00013 data]# grep ".s" luffy.txt my boy is you my name is linghu #zhushi bu huai bei du qu [root@1-VM00013 data]#
sed
:文本编辑工具awk
:文本报告生成器
三、sed与正则表达式
sed对文件实现快速的增删改查,模式匹配。
3.1、输出文件第二行、第三行
[root@1-VM00013 data]# sed "2,3p" luffy.txt -n I teach linux
3.2、过滤出含有“Linux”字样的文本
[root@1-VM00013 data]# sed "/linux/p" luffy.txt -n I teach linux
3.3、删除含有game的行
[root@1-VM00013 data]# sed "/game/d" luffy.txt -i
3.4、全局替换,将my换成i
[root@1-VM00013 data]# sed "s/My/I/g" luffy.txt -i
四、sed配合正则表达式企业案例
4.1、取出linux的ip地址【去头去尾】
上图,通过三个管道符对命令进行过滤。
五、Linux三剑客awk
awk
适合处理匹配到的文本。
awk
更像是一门编程语言,支持条件判断、数组、循环等功能。
一、 用awk '{printf $0}' change.txt可以打印chage.txt所有的数据 二、 用awk '{printf $1$2}' change.txt可以打印第一列和第二列的数据(可以加逗号) 用awk '{printf "第一列:"$1,"第二列:"$2,"第三列:"$3}' change.txt
5.1、显示文件第五行
5.2、输出第一行到第三行
5.2、利用awk取出ip地址信息
5.3、awk做分隔
首先看一下测试文件pwd.txt里的用户:
我们来做一个分隔,分割出第一列用户信息:
5.4、awk变量
一、自定义变量
[root@1-VM00013 data]# awk -v myname="令狐" 'BEGIN{print "我的名字是:",myname}' 我的名字是: 令狐
二、变量赋值
[root@1-VM00013 data]# myname="令狐荣豪" [root@1-VM00013 data]# echo $myname 令狐荣豪 [root@1-VM00013 data]# awk -v awk_name=$myname 'BEGIN{print awk_name}' 令狐荣豪
5.5、awk模式pattern
六、at与mailx命令
6.1、linux定时任务
[root@1-VM00013 ~]# at now+1min at> touch /tmp/linghu.txt at> <EOT> job 1 at Fri Apr 29 14:21:00 2022