《跟阿铭学Linux》第11章 正则表达式:课后习题与答案

简介:

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

1
awk  -F  ':'  '$3 > 500'  /etc/passwd


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

NR表示行数,NF表示一共有多少段

awk -F ':' '{print $NR}' /etc/passwd  会依次打印对应的行数的段,第一行打印第一段,第二行打印第二段... 到了最后就打印空行了


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

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


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

会把非空行过滤出来


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

  • '.':表示一个任意的字符;

  • '*':表示前面紧邻的那个字符有零个或多个,即前面紧邻的那个字符可以不存在,也可以有多个;

  • '.*':表示零个或多个的任意字符,包括空行;

  • '+':表示前面紧邻的那个字符有一个或多个;

  • '?':表示前面紧邻的那个字符有零个或一个;

grep和sed可以使用'.' 、 '*' 和 '.*',但是不能使用'+'和'?'   egrep和awk全部可以使用。


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

{ },其内部为数字,表示前面的字符要重复的次数。数字可以是单个数字{n},也可以是一个区间{n1,n2}。注意,在字符串中,{ }左右都需要加上脱意字符 ‘\’。

1
例如,  grep   'o\{3\}'  /etc/passwd        // 输出有3连续的 'o' 的行


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

1
 


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

该命令由;分割了两部分,首先第一部分表示把file中出现的以ie结尾的字符串删除,

第二部分是把file中以"或|或&开头的字符串删除



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

1
2
删除所有数字:  sed  -i  's/[0-9]//g'  file
删除所有字母:  sed  -i  's/[a-Z]//g'  file


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

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


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

1
awk  '$7 == "200" && $8 == "11897"'  1.log


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

1
2
grep  - v  '^[0-9]'  1.txt       // 输出文件中不以数字开头的行,但输出空行
grep   '^[^0-9]'  1.txt        // 输出文件中不以数字开头的行,但不输出空行(不是0到9开头,但是需要有内容)


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

1
2
3
4
awk  -F  ':'  '{print $0}'  1.txt         // 打印所有的行 ,即整个记录
awk  -F  ':'  '$7=1 {print $0}'  1.txt   
// 以冒号为分隔符,输出时将每行的第七段的内容更改为1,并打印所有的行,此时并不会
连带分隔符一起输出(因为此时有对分隔的段进行相关的操作,这样分隔就有意义了,所以不会打印分隔符)


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

1
2
3
grep  -B1 上面一行
grep  -A1 下面一行
grep  -C1 上下各一行




本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1894305,如需转载请自行联系原作者
相关文章
|
3天前
|
Ubuntu Linux 网络安全
Linux习题8
Linux习题8
6 0
|
3天前
|
网络协议 Unix Linux
Linux习题7
Linux习题7
5 0
|
3天前
|
网络协议 Linux 测试技术
Linux习题6
Linux习题6
5 0
|
3天前
|
域名解析 网络协议 Linux
Linux习题3
Linux习题3
6 0
|
3天前
|
监控 网络协议 Linux
Linux习题4
Linux习题4
5 0
|
3天前
|
Linux 调度 数据安全/隐私保护
Linux习题2
Linux习题2
5 0
|
3天前
|
Unix Linux Shell
Linux习题1
Linux习题1
3 0
|
1天前
|
安全 Linux 测试技术
|
1天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
|
2天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南