Shell-08-文本处理sed
文本处理sed
sed:流编辑器,过滤和替换文本
工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并且清空模式空间。
然后再将下一行读入模式空间进行处理输出,以此类推,直到最后一行
常用参数
示例
依据以下文本内容作为示例
匹配打印(p)
1 打印匹配blp5开头的行
2 打印第一行
3 打印1~3行
4 打印奇数行和偶数行
5 打印匹配行以及后一行
6 打印最后一行 单引号会忽略特殊字符
7 不打印最后一行 感叹号是对后面的命令取反
8 匹配范围
范围模式匹配,下一个匹配到第一个就不匹配了
匹配开头到最后一行
9 引用系统变量,用引号
总结:
sed命令用单引号时,里面变量用单引号引起来,或者sed命令用双引号,因为双引号解释特殊符号原有意义
匹配删除(d)
1 删除匹配到bpl5字符的行
2 删除第一行
3 删除奇数行
4 删除第1行到第3行
5 去除空行 或 # 开头的 行
替换(s///)
1 blpt字符串替换为test
全局替换加 g
2 替换 blp5字符串 并打印
3 使用 & 命令引用匹配类容并且替换
4 IP加引号
5 对1-5行的 blp5 进行替换
6 对匹配的行进行替换
7 二次匹配替换
8 分组使用
第一列,第二列 是第一个小括号匹配,第3列是第2个小括号匹配
再通过 \数字 按分组顺序调用即可
9 将协议与端口号位置调换
10 去除开头和结尾空格或制表符
多重编辑(e)
可以使用-e参数,也可以使用分号分隔
添加新类容(a、i、c)
1 在blp5上一行添加新类容
2 在blp5下一行添加新类容
3 将blp5 替换新行
4 在指定行{下一行|上一行}添加一行
读取文件并追加到匹配行后(r)
将匹配行写到文件(w)
读取下一行(n和N)
n 读取 下一行 到模式空间
N 追加 下一行 内容到模式空间,并且以换行符 \n 分割
1 打印匹配的下一行
2 打印偶数
sed 先读取第一行 1 ,执行 n 命令,获取下一行2,此时模式空间是 2 ,执行p打印命令,打印模式空间。
现在模式空间是2 ,sed 再读取3,执行 n 命令,获取下一行4 ,此时模式空间是4 ,执行p命令打印。以此类推!
3 删除偶数行
忽略大小写匹配(I )
获取总行数(#)
转载请注明出处哟~
https://www.cnblogs.com/lichengguo