什么是sed编辑器?
sed是一个命令行文本编辑工具,用于对文本进行处理和转换。它可以读取文本文件,对文件的各个行进行修改、删除和替换操作,并将结果输出到标准输出或者文件中。
sed 被广泛用于Unix和类Unix系统中的脚本和命令行操作中,它是一种非交互式的文本处理工具。sed使用基于正则表达式的模式匹配和替换来实现各种文本操作。它可以实现的功能包括:替换指定文本、插入和删除文本、根据条件进行行选择等。
sed具有简洁、高效和灵活的特点,可以批量处理大量的文本数据。由于其强大的文本处理能力,sed常被用于Shell脚本、文本转换、日志分析等场景中。
sed命令
选项:
-n | 取消默认输出格式,只打印处理过的行(通常搭配p使用) |
-i | 修改保存文件(默认为预览) |
-e | 同时执行多个过滤 |
-r | 扩展正则表达式 |
内置命令字符
a | 在指定行后添加一条数据或多行数据 |
d | 删除匹配的整行内容 |
i | 在指定行前添加一条数据或多行数据 |
p | 打印当前匹配的数据 |
c | 更改匹配行的内容 |
w | 筛选的内容保存到文件 |
r | 读取文件并追加 |
s | 将匹配的内容进行替换(支持正则表达式) |
范围
范围 | 解释 |
空地址 | 全文处理 |
单地址 | 指定文件某一行 |
范围地址 | 10,20 十到二十行,10,+5 第10行向下5行,/pattern1/,/pattern2/ |
/patter/ | 包含//中的内容的行 |
步长 | 1~2,标识1、3、5、7、9奇数行,2~2两个步长,标识2、4、6、8、10偶数行 |
示例
例1:展示文件中所有数据
例2:在第二行后添加一条数据
例3:把文件中的abc修改成张三
例4:删除所有行
例5:替换行
正则表达式
什么是正则表达式?
正则表达式是一种字符串匹配模式的描述方法,它可以用于搜索、替换和提取文本中符合某种模式的内容。在sed中,正则表达式可以用来描述需要匹配或操作的模式。
正则表达式通常用于以下情况:
- 在文本中查找特定的模式,并进行相应的替换。例如,将文本文件中的所有"cat"替换为"dog"。
- 使用正则表达式的特定模式进行匹配,并对匹配的行执行某些操作。例如,删除包含特定字符的行或将匹配的行输出到新文件中。
正则表达式 | 描述 |
^ | 匹配行的开始 |
$ | 匹配行的结尾 |
[] | 集合 |
[^] | 对集合取反 |
. | 匹配单个字符 |
* | 匹配以前一个字符任意次数 |
\{n,m\} | 匹配前一个字符n~m次 |
\{n\} | 匹配前后一个字符n次 |
\{n,\} | 匹配前一个字符n次以上 |
\(\) | 保留 |
正则示例
例1:匹配以数字开头的行:
例2:删除包含特定单词的行
例3:使用正则表达式替换文件中满足特定模式的文本
例4:取出linux的ip地址
正则拓展
注意:想要使用正则拓展必须加 -r
正则符号 | 描述 |
+ | 最少匹配一次 |
? | 最多匹配一次 |
{n,m} | 匹配n到m次 |
| | 或者 |
() | 组合为整体 |
示例
例:为文件中每个大写字母添加括号[]
如有错误给孩子提醒一下,感谢观看!