面试总结11:grep、sed、awk文本处理三剑客(命令简析与各大公司面试题详解)

本文详细介绍了Linux系统中grep、sed、awk三个强大的文本处理工具,包括它们的基本选项和常见面试题。grep用于全文搜索模式匹配,sed用于非交互式编辑,awk则是一种强大的文本分析语言。文章通过实例解析了如何运用这些工具解决实际问题,如搜索特定行、替换文本、格式转换等。
摘要由CSDN通过智能技术生成

目录

grep

常用的grep选项有:

常见面试题

1、显示/proc/meminfo文件中以不区分大小的s开头的行;

2、显示/etc/passwd中以nologin结尾的行;

3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意字符的行;

4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;

5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;

6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;

7、ifconfig命令可以显示当前主机的IP地址相关的信息等,要求不包括127.0.0.1;   ifcofig eth0| grep "inetaddr" | cut -d: -f2 | cut -d " " f1(注意“”中的空格)

8、显示/etc/sysconfig/network-scripts/ifcfg-eth0文件中的包含了类似IP地址点分十进制数字格式的行;

sed

常用选项:

常见面试题:

1、在text.txt文件中匹配regex的行之后插入一空行?

2、sed将文件test中第50行中的haiwao改为haiwai?

3、替换一个文件/etc/passwd里的这root:x:0:0:root:/root:/bin/bash一行第二个root为test?

4、打印/etc/passwd的奇数行?

5、⽇志⽂件a.log,内容是时间顺序递增,从0点到23点的所有⽇志记录,每条时间的⽇志为⼀⾏:

6.123abc456   456def123   567abc789   789def567

要求输出:   456ABC123   123DEF456   789ABC567   567DEF789

 

awk

常用选项:

常见面试题:

1、使用awk命令

2、腾讯一面shell试题

3、处理一下文件内容,将域名取出并进行计数排数,如处理: 

4、题目如下:

5、测试文件内容如下


grep

grep(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式,grep打印包含模式的所有行。grep支持基本正则表达式,也支持其扩展集。

 

常用的grep选项有:

-c  只输出匹配行的计数。

-i  不区分大小写(只适用于单字符)。

-h  查询多文件时不显示文件名。

-l   查询多文件时只输出包含匹配字符的文件名。

-n  显示匹配行及行号。

-s  不显示不存在或无匹配文本的错误信息。

-v  显示不包含匹配文本的所有行。(反向过滤)

 

常见面试题

1、显示/proc/meminfo文件中以不区分大小的s开头的行;

grep -i ^s /proc/meminfo

cat /proc/meminfo|grep –i ^s

 

2、显示/etc/passwd中以nologin结尾的行;

grep nologin$ /etc/passwd

sed -n '/nologin$/p' passwd 


3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意字符的行;

grep ^#.* /etc/inittab

 

4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;

grep :[0-9]: /etc/inittab 

grep :[[:digit:]]: /etc/inittab

 

5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;

grep ^[[:space:]] /boot/grub2/grub.cfg

 

6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;

grep "^[09].*\1$" /etc/inittab

 

7、ifconfig命令可以显示当前主机的IP地址相关的信息等,要求不包括127.0.0.1;
   ifcofig eth0| grep "inetaddr" | cut -d: -f2 | cut -d " " f1(注意“”中的空格)

ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F ':''{print $2}'

 

8、显示/etc/sysconfig/network-scripts/ifcfg-eth0文件中的包含了类似IP地址点分十进制数字格式的行;

grep -E "([0-9]{1,3}\.){3}\.[0-9]{1,3}"/etc/sysconfig/network-scripts/ifcfg-eth0
grep"[0-9]\{1,3\}\."\{3\}\.[0-9]\{1,3\}/etc/sysconfig/network-scripts/ifcfg-eth0

 

sed

sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值