sed:编辑器
sed :Stream Editor,行编辑器:
用法:
sed [option]... 'script' inputfile..
| 选项 | 解释 |
|---|---|
| -n | 不输出模式中的内容至屏幕 |
| -e | 多点编辑,也就是一条命令进行多次的编辑 |
| -f /PATH/TO/SCRIPT_FILE | 从指定脚本文件中读取编辑脚本 |
| -r | 支持使用扩展正则表达式 |
| -i | 原处编辑及修改原文件(原处修改时,不要加编辑命令p) |
示例1:选项-n的作用(-n一般要与p选项连用)

示例2:选项-e的作用
示例3:选项-f的作用

示例4:选项 -i的作用

| 命令 | 解释 |
|---|---|
| d | 删除 |
| p | 显示模式空间中的内容 |
| a \text | 在行后面追加文本;支持使用\n实现多行追加 |
| i \text | 在行前面追加文本;支持使用\n实现多行追加 |
| c \text | 替换行为单行或多行文本 |
| w /path/to/somefile | 保存模式空间匹配到的行至指定文件中 |
| r /path/to/somefile | 读取指定文件中的文本流至模式空间中匹配到的行的行后 |
| = | 为模式空间中的行打印行号 |
| ! | 取反条件,放置在编辑命令之前 |
| s/// |
替换;支持使用其他分隔符:s@@@,s### 替换标记: g:行内全局替换 p:显示替换成功的行; w /PATH/TO/SOME/FILE:将替换成功的结果保存至指定的文件中 |
示例1:编辑命令 d的作用(删除空白行)

示例2:编辑命令a \text的作用

示例3:编辑命令 i \text的作用

示例4:编辑命令c \text的作用

示例5:编辑命令w /path/to/somefile的作用

示例6:编辑命令r /path/to/somefile的作用

示例7:编辑命令=的作用

示例8:编辑命令!的作用(放置在编辑命令之前)

示例9:编辑命令s///的作用

| 定界符 | 解释 |
|---|---|
| 无定界符号 | 对全文进行处理 |
| a(单地址) | 匹配第a行进行处理 |
| a, b | 匹配从第a行到b行进行处理 |
| a,+n | 匹配从第a行+n行进行处理 |
| /pattern/ | 处理配模式匹配上的每一行 |
| a,/pattern/ | 匹配从a行到模式匹配上的行 |
| /pat1/,/pat2/ | 匹配从模式pat1到模式part2之间的行 |
| ~ | 步进 |
示例:定界符号~的作用(分别打印出奇数行以及偶数行)

| 高级编辑命令 | 解释 |
|---|---|
| h | 把模式空间中的内容覆盖至保持空间中 |
| H | 把模式空间中的内容追加至保持空间中 |
| g | 从保持空间中取出数据覆盖至模式空间 |
| G | 从保持空间中取出数据追加至模式空间 |
| x | 把模式空间中的内容和保持空间中的内容进行互换操作 |
| n | 读取匹配到的行的下一行至模式空间 |
| N | 追加匹配到的行的下一行至模式空间 |
| d | 删除模式空间中的行 |
| D | 删除多行模式空间中的所有行 |
高级编辑命令的简单示例:
sed -n 'n;p' sed.sh
作用:匹配偶数行
sed '1!G;h;$!d' sed.sh
作用:逆向显示文件内容
sed '$!N;$!D' sed.sh
作用:显示文件最后两行
sed '$!d' sed.sh
作用:取文件最后一行
sed 'G' sed.sh
作用:在每行后加空白行
sed '/^$/d;G' sed.sh
作用:合并多个空白行,并且在每行后增加一行空白行
sed 'n;d' sed.sh
作用:显示奇数行
sed -n '1!G;h;$p' sed.sh
作用:逆向显示文件内容
本文深入讲解sed编辑器的使用方法,包括基本选项、编辑命令、地址定界以及高级编辑技巧。通过实例演示如何进行文本处理,如删除空白行、逆向显示文件内容等。
3153

被折叠的 条评论
为什么被折叠?



