20190806-sed面试题
由于比较难,附上PPT,没事还得看
下载:https://www.lanzous.com/i5cs9aj 密码:arka
1、删除centos7系统/etc/grub2.cfg⽂件中所有以空⽩开头的⾏⾏⾸的空⽩字符。
sed -r 's/[1]+//' /etc/grub2.cfg
2、删除/etc/fstab⽂件中所有以#开头,后⾯⾄少跟⼀个空⽩字符的⾏的⾏⾸的# 和空⽩字符。
[root@centos7 ~]# sed -r 's/^#[[:space:]]+//g' /etc/fstab
3、在centos6系统/root/install.log每⼀⾏⾏⾸增加#号。
[root@qqq tmp]# sed 's/^/#/g' /root/install.log
4、在/etc/fstab⽂件中不以#开头的⾏的⾏⾸增加#号。
[root@centos7 ~]# sed -r 's/^[^#]/#&/g' /etc/fstab
[root@centos7 ~]# sed -r '/^[^#]/s@^@#@' /etc/fstab
5、处理/etc/fstab路径,使⽤sed命令取出其⽬录名和基名。
[root@centos7 ~]# echo "etc/fstab/dd/" | sed -r 's@^(.*)/(.+)$@\1@'
[root@centos7 ~]# echo "etc/fstab/dd/" | sed -r 's@^(.*)/(.+)$@\2@'
dd/
6、利⽤sed 取出ifconfig命令中本机的IPv4地址
[root@centos7 ~]# ifconfig eth0 | sed -rn '/netmask/s#.*net (.*) net.*#\1#p'
192.168.38.128
7、统计centos安装光盘中Package⽬录下的所有rpm⽂件的以.分隔倒数第⼆个字段的重复次数。
[root@centos7 ~]# ls /misc/cd/Packages/*.rpm | sed -r 's/.*\.(.*)\.rpm/\1/g' | sort | uniq -c | sort -rn
2311 x86_64
928 noarch
4 i686
8、统计/etc/init.d/functions⽂件中每个单词的出现次数,并排序(⽤grep和 sed两种⽅法分别实现)。
[root@centos7 ~]# egrep -o "\<[[:alpha:]]+\>" /etc/init.d/functions | sort | uniq -c | sort -n
9、将⽂本⽂件的n和n+1⾏合并为⼀⾏, n为奇数⾏
[root@centos7 ~]# seq 10 | sed "1~2N;s/\n/ /"
1 2
3 4
5 6
7 8
9 10
面试题
1、linux系统中,命令可以从文本文件的每一行中截取指定的内容的数据。
cut,awk
2、在每一行后增加一空行?
[root@centos7 ~]# sed G /etc/fstab
[root@qqq tmp]# sed -r 's/$/\n/' /etc/passwd
3、在匹配regex的行之后插入一空行?
[root@centos7 ~]# sed '/regex/G' A.txt
[root@qqq tmp]# sed -r '/root/s@$@\n@' /etc/passwd
4、计算文件行数?
[root@centos7 ~]# wc -l /etc/passwd
6、sed将文件test中第50行中的haiwao改为haiwai?
[root@centos7 ~]# sed '50s/haiwao/haiwai/g' test
7、替换一个文件/etc/passwd里的这root❌0:0:root:/root:/bin/bash一行第二个root为test?
cat /etc/passwd| sed '/^root/!d'|sed 's/root/test/2'
[root@qqq tmp]# sed /^root/p -n /etc/passwd | sed 's/root/test/2'
root:x:0:0:test:/root:/bin/bash
8、打印/etc/passwd的奇数行?
[root@qqq tmp]# sed 1~2p /etc/passwd -n
实验
1、利⽤sed 取出ifconfig ens33命令中本机的IPv4地址
[qqq@ubutnu ~]$ ifconfig ens33 | sed -n 2p | sed -r 's/.*inet (.*) net.*/\1/'
192.168.38.130
2、删除/etc/fstab⽂件中所有以#开头,后⾯⾄少跟⼀个空⽩字符的⾏的⾏⾸的#和空⽩字符
[qqq@ubutnu ~]$ sed 's/^#[[:space:]+]//' /etc/fstab
3、把/etc/httpd/conf/httpd.conf⽂件内的Linsten 80改为Listen 8081
sed -i 's/Listen 80/Listen 81/g' /etc/httpd/conf/httpd.conf
4、把pets⽂件中所有的dog修改为cat
sed 's/dog/cat/g' pets -i
5、删除pets⽂件中的第2⾏
sed 2d pets -i
6、仅显⽰pets⽂件的第2⾏
sed -n 2p pets
7、把pets⽂件的第2⾏显⽰2遍
sed 2p pets
8、显⽰pets⽂件的最后1⾏
sed '$p' pets -n
9、显⽰pets⽂件中包含dog字符串的所有的⾏
sed /dog/p pets -n
10、显⽰pets⽂件中,包含2或4的⾏之间的所有⾏
[root@centos7 ~]# sed -r '/2/,/4/p' pets -n
c2aaadog
4
ddog2
sa 4
2
a
11、显⽰pets⽂件中,第1⾏到第3⾏之间的所有⾏
[root@centos7 ~]# sed 1,3p pets -n
12、显⽰pets⽂件中第2⾏及后⾯的1⾏
[root@centos7 ~]# sed 2,+1p pets -n
13、显⽰pets⽂件中第1⾏和dog字符串之间的⾏
[root@centos7 ~]# sed -nr '1,/dog/p' pets
a
a
Q A
regex
dd
b
c2aaadog
14、显⽰pets⽂件的奇数⾏
[root@centos7 ~]# sed 1~2p pets -n
15、显⽰pets⽂件的偶数⾏
[root@centos7 ~]# sed 2~2p pets -n
16、在pets⽂件的第2⾏的下⼀⾏添加hello
[root@centos7 ~]# sed '2a hello' pets -i
17、在pets⽂件的第2⾏的下⼀⾏添加2⾏内容为hello和world
[root@centos7 ~]# sed '2a hello\nworld' pets -i
18、在pets⽂件的第2⾏的前⼀⾏添加2⾏内容为hello和world
[root@centos7 ~]# sed '2i hello\nworld' pets -i
19、把pets⽂件的第2⾏替换为hello
[root@centos7 ~]# sed '2c hello' pets -i
[root@centos7 ~]# seq 4 | sed '2c hello'
1
hello
3
4
20、把pets⽂件的第1-3⾏内容,另存为test.txt⽂件
[root@centos7 ~]# sed 1,3p pets -n > test.txt
21、在第2⾏后读⼊test.txt⽂件
[root@centos7 ~]# sed '2r test.txt' pets
22、不显⽰第2⾏
[root@centos7 ~]# sed '2!p' test.txt -n
23、把pets⽂件中的每⾏内容前都编序号显⽰
[root@centos7 ~]# cat -n pets
[root@centos7 ~]# sed '=' pets
[:blank:] ↩︎
20190806-sed面试题的更多相关文章
- sed 面试题
#oldboy my qq num is 49000448.$ not 4900000448. my god ,i am not oldbey,but clsn!$ #oldboy my name i ...
- awk与sed命令面试题整理
1.sed命令123abc456456def123567abc789789def567要求输出:456ABC123123DEF456789ABC567567DEF789答案:sed -r -i 's# ...
- 企业面试题-find结合sed查找替换
题:把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换成oldgirl 解答: 建立测试数据: [root@tan data]# mkdir /oldboy ...
- Liunx面试题
答案待定 1.请用shell查询file1 里面空行的所在行号2.编写ShellScript查询file1 以abc 结尾的行3.打印出file1 文件第1 到第3 行4.如何将本地80 端口的请求转 ...
- Hadoop 之面试题
颜色区别: 蓝色:hive,橙色:Hbase.黑色hadoop 请简述hadoop怎样实现二级排序. 你认为用Java,Streaming,pipe 方式开发map/reduce,各有哪些优缺点: 6 ...
- Linux面试题汇总答案
转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...
- 收藏所用C#技术类面试、笔试题汇总
技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...
- JSP基本面试的试题
JSP基本面试的试题 1.jsp有哪些内置对象作用分别是什么 答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): request 用户端请求,此请求会包含来自GET/PO ...
- 嵌入式Linux C笔试题积累(转)
http://blog.csdn.net/h_armony/article/details/6764811 1. 嵌入式系统中断服务子程序(ISR) 中断是嵌入式系统中重要的组成部分,这导致了很 ...
- linux运维面试题
一.有文件file1 1.查询file1 里面空行的所在行号 grep -n "^#" file1 or awk ‗{if($0~/^$/)print NR}‘ file or g ...
随机推荐
- net core WebApi——使用NPOI导入导出操作
目录 前言 NPOI 测试 小结 @ 前言 时间过得好快,在之前升级到3.0之后,就感觉好久没再动过啥东西了,之前有问到Swagger的中文汉化,虽说我觉得这种操作的意义不是太大,也是多少鼓捣了下,其 ...
- web开发基础之HTTP协议
HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...
- 关于seaJs合并压缩(gulp-seajs-combine )路径与文件ID匹配问题。
前段时间和有大家介绍过用 gulp-seajs-combine 来打包seaJs文件.大家会发现合并seaJs一个很奇怪的现象,那就是它的 ID和路径匹配原则.使得有些文件已经合并过去了,但还是会提示 ...
- [JOYOI1463] 智商问题
题目限制 时间限制 内存限制 评测方式 题目来源 1500ms 131072KiB 标准比较器 Local 题目背景 各种数据结构帝~ 各种小姊妹帝~ 各种一遍AC帝~ 来吧! 题目描述 某个同学又有 ...
- std::wstring
std::wstring主要用于 UTF-16编码的字符, std::string主要用于存储单字节的字符( ASCII字符集 ),但是也可以用来保存UTF-8编码的字符. UTF-8和UTF-16是 ...
- Vue躬行记(4)——组件
组件是可复用的Vue实例,拥有属于自己的数据.模板.脚本和样式,可避免繁重的重复性开发.由于组件都是独立的,因此其内部代码不会影响其它组件,但可以包含其它组件,并且相互之间还能通信. 一.注册 在使用 ...
- 下载达 10 万次的 IDEA 插件,K8s 一键部署了解一下?
作者 | 铃儿响叮当 导读:涉及开发的技术人员,永远绕不开的就是将应用部署到相应服务器上,本文将给大家讲解:对于容器服务 ACK,怎么实现真正"一键部署",提高开发部署效率,在 K ...
- Java线程切换(一)
(本文由言念小文原创,转载请注明出处) 一 前言有Android开发经验的同学都清楚,UI的更新必须在主线程中进行,且主线程不能被阻塞,否则系统ANR异常.我们往往做一些数据处理是耗时操作,必须要在 ...
- Knative 实战:如何在 Knative 中配置自定义域名及路由规则
作者 | 元毅 阿里云智能事业群高级开发工程师 当前 Knative 中默认支持是基于域名的转发,可以通过域名模板配置后缀,但目前对于用户来说并不能指定全域名设置.另外一个问题就是基于 Path 和 ...
- (day27)subprocess模块+粘包问题+struct模块+ UDP协议+socketserver
目录 昨日回顾 软件开发架构 C/S架构 B/S架构 网络编程 互联网协议 socket套接字 今日内容 一.subprocess模块 二.粘包问题 三.struct模块 四.UDP 五.QQ聊天室 ...