Day15
作者:孙鹏鹏
归档:预习笔记
时间:2019/3/20
快捷键:
Ctrl + 1 标题1
Ctrl + 2 标题2
Ctrl + 3 标题3
Ctrl + 4 标题4
Ctrl + 5 程序代码
Ctrl + 6 正文
Ctrl + 7 实例1-1
格式说明:
蓝色字体:注释
黄色背景:重要
绿色背景:注意
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
联系方式:
网站运维QQ交流群:
Linux 385168604架构师390642196
Python 29215534大数据421358633
官方网站:
http://www.oldboyedu.com
目 录
第一章:
第一章:
1.1课后练习:
环境准备:
[root@oldboy-58 ~/test]# cat oldboy.txt
张三:男:80:100:29:11
李四:女:70:77:55:99
王五:男:90:909:98:56:99
赵六:女:100:99:99:009:76:kj
问题1:取oldboy.txt文件的第2行到第3行的内容。
1.
[root@oldboy-58 ~/test]# awk 'NR==2,NR==3'
oldboy.txt
李四:女:70:77:55:99
王五:男:90:909:98:56:99
2.
[root@oldboy-58 ~/test]# sed -n '2,3p'
oldboy.txt
李四:女:70:77:55:99
王五:男:90:909:98:56:99
问题2:过滤出含有10字符串的行※。
1.
[root@oldboy-58 ~/test]# sed -n '/10/p'
oldboy.txt
张三:男:80:100:29:11
赵六:女:100:99:99:009:76:kj
2.
[root@oldboy-58 ~/test]# awk '/10/'
oldboy.txt
张三:男:80:100:29:11
赵六:女:100:99:99:009:76:kj
问题3:删除含有"李"字符串的行※。
1.
[root@oldboy-58 ~/test]# sed '/李/d' oldboy.txt
张三:男:80:100:29:11
王五:男:90:909:98:56:99
赵六:女:100:99:99:009:76:kj
2.
[root@oldboy-58 ~/test]# awk '/^[^李]/' oldboy.txt
张三:男:80:100:29:11
王五:男:90:909:98:56:99
赵六:女:100:99:99:009:76:kj
问题4:取文件的第一列、第三列和最后一列内容,并打印行号※。
[root@oldboy-58 ~/test]# awk -F
":" '{print NR,$1,$3,$NF}' oldboy.txt
1 张三 80 11
2 李四 70 99
3 王五 90 99
4 赵六 100 kj
问题5:取出Linux中执行ifconfig eth0后对应的IP地址(只能输出IP地址)。
[root@oldboy-58 ~/test]# awk -F
":" '$1~/李/ {print $NF}' oldboy.txt
99
[root@oldboy-58 ~]# ifconfig eth0|awk
'NR==2{print $2}'
10.0.0.201
问题6:过滤文件中第一列内容匹配’李‘的字符串,把符合的行的最后一列输出
[root@oldboy-58 ~/test]# awk -F
":" '$1~/李/ {print $NF}' oldboy.txt
99
问题7:过滤下列oldboy.txt文件中第三列内容分数大于70,并且小于100的人名和性别。
[root@oldboy-58 ~/test]# awk -F
":" '$3>75&&$3<95{print $1,$2}' oldboy.txt
张三 男
王五 男
1.2三剑客练习题:
1.在当前系统中打印出所有普通用户的用户名和家目录(/etc/passwd)
[root@oldboy-58 ~]# cat /etc/passwd|awk -F
":" '$3>=1000{print $1,$(NF-1)}'
sunpengpeng /home/sunpengpeng
oldboy /home/oldboy
2.显示当前系统中容量使用率大于5%的文件系统名称和挂载点
[root@oldboy-58 ~]# df -h|awk -F "[%
]+" 'NR>1&&$5>5{print $1,$NF}'
/dev/sda3 /
/dev/sda1 /boot
3.为/tmp/grub.conf文件中前三行的行首加#号
[root@oldboy-58 /tmp]# awk
'NR>0&&NR<4{print"#"$0}' grub
#GRUB_TIMEOUT=5
#GRUB_DISTRIBUTOR="$(sed 's, release
.*$,,g' /etc/system-release)"
#GRUB_DEFAULT=saved
4.通过notepad++打开,把一下内容输入到test.txt文件中
姓名 区号 电话 三个月捐款数量
Mike Harrington:[510] 548-1278:250:100:175
Christian Dobbins:[408] 538-2358:155:90:201
Susan Dalsass:[206] 654-6279:250:60:50
Archie McNichol:[206] 548-1348:250:100:175
Jody Savage:[206] 548-1278:15:188:150
Guy Quigley:[916] 343-6410:250:100:175
Dan Savage:[406] 298-7744:450:300:275
Nancy McNeil:[206] 548-1278:250:80:75
John Goldenrod:[916] 348-4278:250:100:175
Chet Main:[510] 548-5258:50:95:135
Tom Savage:[408] 926-3456:250:168:200
Elizabeth Stachelin:[916]
440-1763:175:75:300
(1)显示所有电话号码
[root@oldboy-58 ~]# awk -F "[
:]+" '{print $4}' oldboy
548-1278
538-2358
654-6279
(2)显示Dan的电话号码
[root@oldboy-58 ~]# awk -F "[
:]+" '$1~/Dan/{print $4}' oldboy
298-7744
(3)显示Susan的名字和电话号码
[root@oldboy-58 ~]# awk -F "[
:]+" '$1~/Susan/{print $4,$1}' oldboy
654-6279 Susan
(4)显示所有以D开头的姓
[root@oldboy-58 ~]# awk -F "[
:]+" '$2~/D/{print $2}' oldboy
Dobbins
Dalsass
(5)显示所有区号为916的人名
[root@oldboy-58 ~]# awk -F "[
:]+" '$3~/\[916\]/{print $1,$2,$3}' oldboy
Guy Quigley [916]
John Goldenrod [916]
Elizabeth Stachelin [916]