【2018.04.29学习笔记】【正则表达式扩展知识练习】

本文通过一系列实例介绍了如何使用awk、grep等命令进行文本处理,涵盖了行筛选、内容替换、数据提取等应用场景,并解析了特殊字符的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式扩展知识练习

作业题:

1. 如何把 /etc/passwd 中用户uid 大于500 的行给打印出来?

uid是文件passwd的第三段,所以:
awk -F ':' '$3>500 {print $0}' passwd 

2. awk中 NR,NF两个变量表示什么含义?awk -F ':' '{print $NR}' /etc/passwd 会打印出什么结果出来?

NR表示行号、NF表示行的段数。 打印结果:依次打印passwd的第n行的第n段。

3. 用grep把1.txt文档中包含'abc'或者‘123’的行过滤出来,并在过滤出来的行前面加上行号.

grep -n 'abc\|123' 1.txt

4. grep -v '^$' 1.txt 这样会过滤出哪些行?

^$代表空行,所以-v取反,过滤出所有非空行。

5. '.' '' 和 '.' 分别表示什么含义? '+'和'?'表示什么含义,这五个符号是否可以在grep中使用,是否可以在egrep、sed以及awk中使用?

.代表匹配单个任意字符  *代表匹配0个或多个任意字符 .*代表匹配空字符或者任意字符串
+代表匹配1个或多个任意字符  ?代表匹配0个或者1个任意字符 。
可以在grep、egrep、sed、awk中使用

6. grep 里面用到一个 {} ,它用在什么情况下?

表示其前面字符连续出现的次数,花括号里数字,代表出现的次数。如r{3},表示r连续出现3次。

7. sed有一个选项,可以直接更改文本文件,是哪个选项?

-i选择直接修改原文件。

8. sed -i 's/.ie//;s/["|&].//' file 这条命令表示什么操作呢?

把file文件中ie字符串及他前面的字符串都删除,"|&号及他后面的字符串都删除。并修改原文件

9. 如何删除一个文档中的所有数字或者字母?

sed 's/[0-9-a-zA-Z]//g' file ,把数字和字母替换成空字符

10. 截取日志1.log的第一段(以空格为分隔符), 按数字排序、然后去重,但是需要保留重复的数量如何做?

awk -F ' ' '{print $1}' 1.log |sort -n |uniq -c

11. 使用awk过滤出1.log中第7段(空格分隔)为'200' 并且第8段为'11897'的行。

awk -F ' ' '$7=="200" && $8=="11897" {print $0}' 1.log

12. 请比较这两个命令的异同: grep -v '^[0-9]' 1.txt 和 grep '^[^0-9]' 1.txt

第一个是:以数字开头的行匹配出来,输出打印剩余的行,包括空行。
第二个是:以非数字开头的行匹配出来并输出打印,不包括空行。

13. awk中的$0表示什么?为什么以下两条命令的$0结果不一致呢? awk -F ':' '{print $0}' 1.txt 和 awk -F ':' '$7=1 {print $0}' 1.txt

$0表示文档的行以分隔符隔开后的所有段。
第一条命令:打印文件的所有行的所有段,即输出打印文件所有内容
第二条命令:匹配行的第7段为1的行,并输出打印匹配行的所有段。

14. 使用grep过滤某个关键词时,如何把包含关键词的行连同上面一行打印出来,那下面一行呢?同时上面和下面都打印出来呢?

grep -B1 'keyword' file
grep -A1 'keyword' file
grep -C1 'keyword' file

转载于:https://my.oschina.net/u/3804114/blog/1803435

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值