2021-04-16

本文详细解析了awk进行用户ID筛选、变量理解及应用,grep的行号过滤、模式匹配,sed修改文件和文本操作,以及高级正则表达式符号的深入讲解。通过实例演示,掌握这些强大的文本处理工具在实际项目中的运用。
摘要由CSDN通过智能技术生成
# 11.4课后习题
**(1)、如何把/etc/passwd中用户uid大于500的行打印出来?**
答案:
awk -F':' '$3>500' /etc/passwd
**(2)、awk中变量NR和NF分别表示什么含义?,命令awk -F':' '{print $NR}' /etc/passwd会打印出什么结果?**
答案:
NR表示行数,NF表示一共有多少段
代码含义:打印出每一行行号所对应的字段
**(3)、用grep把1.txt文档中包含abc或者123的行过滤出来,并在过滤出来的行前面加上行号**
答案:
grep -n 'abc\|123' 1.txt
**(4)、命令grep -v '^$' 1.txt会过滤出那些行**
答案:
会过滤出不是空的行
**(5)、符号.、.**表示什么含义?符号+和?表示什么含义?这5个符号是否可以在grep、egrep、sed 以及awk中使用?**
答案:
'.' 表示一个任意的字符;
'*' 表示前面紧邻的那个字符有零个载多个即前面紧邻的那个字符可以不存在,也可以有多个,
'.*' 表示零个或多个任意字符,包括空行;
'+' 表示前面紧邻的那个字符有一个或多个;
'?' 表示前面紧邻的那个字符有零个或一个;
 grep和sed可以使用'.''*''.*'但是不能使用'+' '?' egrep和awk全部可以使用。
**(6)、grep里面的符号{}用在什么情况下?**
答案:
{ },其内部为数字,表示前面的字符要重复的次数。数字可以是单个数字{n},也可以是一个区间{n1,n2}。在字符串中,{ }左右都需要加上脱意字符 ‘\’。
**(7)、sed有一个选项可以直接更改文本文件,是那个选项?**
答案:
-i选项
**(8)、sed -i 's/.* ie //;s/["|&].*//' file这条命令表示什么操作**
答案:
表示把file中出现的以ie结尾的字符串删除;把file中以"或|&开头的字符串删除
**(9)、如何删除一个文档中所有的数字或者字母?**
答案:
删除所有的数字:	sed -i 's/[0-9]//g' 1.txt 
删除所有的字母:	sed -i 's/[a-Z]//g' 1.txt 
**(10)、截取日志1.log的第1个字段(以空格为分隔符),按数字排序,然后去重,但是需要保留重复的数量,如何做?**
答案:
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 '^[o-9]' test.txt 和 grep '^[0-9]' test.txt。**
答案:
grep -v '^[o-9]' test.txt		以非数字开头的行匹配出来并输出打印,包括空行
grep '^[0-9]' test.txt			以数字开头的行匹配出来并输出打印,不包括空行
**(13)、awk中的$0表示什么?为什么以下两条命令的$0结果不一致呢?**
awk -F ':' '{print $o}' test.txt
awk -F ':'$7=1 {print $o}' test.txt
答案:
$0表示整行、
awk -F ':' '{print $0}' test.txt	表示打印所有的行
awk -F ':' '$7=1 {print $0}' test.txt		以冒号为分隔符,输出时将每行的第七段的内容更改为1,并打印所有的行,此时并不会连带分隔符一起输出
**(14)、使用grep过滤某个关键词时,如何把包含关键词的行连同上面一行打印出来?连同下面一行也打印呢?同时打印上下各一行呢?**
答案:
打印出上面一行:grep -B1 'halt' /etc/passwd
打印出下面一行:grep -A1 'halt' /etc/passwd 
打印出上下各一行:grep -C1 'halt' /etc/passwd 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值