Linux Shell 知识点考评(二):sed 流编辑器(附答案)

25:sed 's/old/new/' file.txt 这条最基本的替换命令,默认只替换每行的第几个匹配项?

默认只替换每行的第1个匹配项。

26:在 sed 's/old/new/g' file.txt 中,标记 g 的全称是什么?它改变了什么行为?

g 全称 global 全局的。

它由只替换每行的第1个匹配项,变成替换每行的所有匹配项。

27:命令 sed -n '3p' file.txt 中,-n 和 p 分别起什么作用?如果去掉 -n 会发生什么?

-n 抑制默认输出

p 打印,3p打印第三行

去掉 -n 会默认输出每一行,输出到第三行的时候还会在这一行下面再打印一遍第三行。

28:请解释 sed '3d' file.txt 对文本做了什么操作?

删除第三行,输出其他所有行。

29:sed '3,5d' file.txt 删除的范围是哪里?

删除第三行到第五行。

30:命令 sed 'd' file.txt 中的 符号代表哪一行?

$ 代表最后一行。

31:sed -i 's/foo/bar/g' file.txt 中的 -i 选项非常危险,它会对文件做什么?

Sed 默认不直接修改文件,-i 选项会对文件进行更改。

32:sed 's|/bin/bash|/bin/zsh|g' 这里为什么使用 | 而不是常见的 / 作为分隔符?

因为这里要把所有的 '/bin/bash' 改为 '/bin' ,内容都是路径,路径中含有 '/' ,用 '|' 替换掉,避免转义。

33:请解释 sed '/error/d' log.txt 是基于什么条件进行删除的?

匹配到含有 'error' 的行时删除这一行。

34:sed '/^$/d' file.txt 这条命令通常用来做什么清理工作?

清理空行。

35:命令 sed '2i\Text' file.txt 是在第2行的前面还是后面插入文本?

2i 是插入到第二行的位置,所以是在第二行前面插入文本。

36:命令 sed '2a\Text' file.txt 是在第2行的前面还是后面追加文本?

2a 是在第二行后面插入文本。

37:sed '2c\New Content' file.txt 中的 c 命令对第2行做了什么?

将第二行的内容替换成 'New Content'。

38:sed -n '/start/,/end/p' file.txt 打印的内容范围是如何界定的?

打印从含有 'start' 的行开始,到含有 'end' 的行结束的所有行。

39:在 sed 's/^\(.\)/\U\1/' file.txt 中,\U 和 \1 配合实现了什么功能?

\U 转为大写

\1 对第一个捕获组进行操作

\U\1 将第一个捕获组转为大写

s/^\(.\)/\U\1/ 将每行首字母转为大写

40:解释 sed 's/[0-9]//g' 的功能,它删除了文本中的什么内容?

删除了文本中的所有数字。

41:sed 's/\bhello\b/HELLO/g' 中 \b 的作用是什么?

精准匹配单词 'hello' 。

42:命令 sed '5,$d' file.txt 删除了从哪一行开始到哪里的内容?

从第五行到结尾的内容。

43:sed -e 's/a/A/' -e 's/b/B/' file.txt 中 -e 选项允许我们做什么?

既把小写 a 替换成大写 A,又把小写 b 替换成大写 B。

44:sed '=' file.txt 这个命令会输出什么特殊信息?

输出行号和内容分行。

45:在处理配置文件时,sed 's/^#//' 通常用于什么操作?

把所有位于行首的 '#' 都删掉,即取消注释。

46:反过来,sed 's/^/#/' config.txt 通常用于什么操作?

给每一行都加上 '#' ,即快速注释配置项。

47:sed 's/foo/bar/2' 这个命令中的数字 2 表示替换第几次出现的foo?

数字 2 表示替换一行中第2次出现的foo。

48:sed -f script.sed file.txt 中的 -f 选项表示命令来源哪里?

-f = file(文件)

不直接从命令行读取编辑指令,而是从指定的文件中读取并执行 sed 脚本命令。

命令全部来源于文件 script.sed

49:在HTML处理中,sed 's/<[^>]*>//g' 这个正则模式主要用来去除什么?

去除所有 HTML/XML 标签,只保留纯文本内容。

50:sed 'N; s/\n/ /' 其中的 N 命令和 \n 的替换实现了什么样的行操作?

N(next)读取下一行

N; s/\n/ / 读取两行,用空格替换换行。

51:sed '/foo/!d' file.txt 中的感叹号 ! 表示什么逻辑?

所有含有 'foo' 的行都不删除,即只保留含有 'foo' 的行。

52:解释 sed 's/./& /g' 中符号 & 代表什么内容?

& - 匹配到的原文内容

sed 's/./& /g' 在每个字符后面加一个空格。

53:sed -n '$p' file.txt 只会输出文件的哪一部分?

只会输出文件的最后一行。

54:在 sed '/Error/s/False/True/' 中,替换操作 s 是在所有行执行,还是受限于前面的地址?

受限于前面的地址,只有匹配到 'Error' 时才将这一行的 'False' 替换成 'True'。

相关推荐
Qt程序员1 小时前
从协议到实战:HTTP 反向代理
linux·c++·websocket·nginx·http·反向代理·正向代理
笨笨饿1 小时前
#85_库函数开发
linux·c语言·网络·stm32·单片机·算法·个人开发
brevity_souls1 小时前
SQL server格式化日期
运维·服务器·数据库
大肥羊学校懒羊羊1 小时前
FAST-LIVO2 一键复现教程(Ubuntu 20.04 / ROS Noetic )
linux·运维·ubuntu
郝亚军1 小时前
libmodbus在Ubuntu 22.04上按arm64架构编译方法
linux·运维·ubuntu
IT布道1 小时前
[Git] 源码服务器主/备备份方案
运维·服务器·git
China_Yanhy1 小时前
AWS RDS PostgreSQL 大版本升级故障复盘与 SRE 最佳实践指南
运维·云计算·aws
神州数码云基地1 小时前
AI 驱动的自动化安全测试工具--Strix
运维·人工智能·功能测试·测试工具·自动化
IT菜鸟程1 小时前
Linux 系统安全加固实战:从密码策略到 SSH 访问控制
linux·ssh·系统安全