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'。

相关推荐
A小辣椒10 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒14 小时前
TShark:基础知识
linux
AlfredZhao16 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式