sed 流编辑器

sed操作软连接文件小bug

#  对软连接进行操作后 元数据并不会发生变发 只是改变了软连接的数据 
sed和grep不一样,不管是否找到指定的模式,
它的退出状态都是0 只有当命令存在语法错误时,sed的退出状态才不是0

sed 命令的组成

命令由”地址+命令“两部分组成,命令如p、d,更多详解第三章节,本节我们主要介绍地址
地址用于决定对流入模式空间的哪些行进行编辑,如果没有指定地址,sed将处理流入模式空间的所有
行。

PS: 可以对文件进行增删改查 替换
选项:
	-n		#取消默认输出 
	-r		#支持扩展正则使用 
	-i		#改变文件内容  
	-e		#允许多项编辑 
        -f              #指定sed脚本文件名

内部指令:
	p		#print  打印 
	d		#删除  排除
        a		#追加  将内容追加指定内容的后面 
        i		#插入   将内容插入到指定的内容的前面     
              s			#替换    
              g			#全局 
              i			#忽略大小写 (搭配sg使用的)
              \n		#换行符 
	      \t		#tab键
	      =		#显示行号 
实例:

查过滤

  1. 查包含root的行 /root/p
    day08 sed 流编辑器常用选项和内部命令_linux

2.查以root开头的行 /^root/p
day08 sed 流编辑器常用选项和内部命令_linux_02

2.-r 支持扩展正则 | 或者
day08 sed 流编辑器常用选项和内部命令_linux_03

3.打印不连续的行
day08 sed 流编辑器常用选项和内部命令_java_04

4.打印某个字符到另个字符的所有行
day08 sed 流编辑器常用选项和内部命令_linux_05

5.打印连续的行
day08 sed 流编辑器常用选项和内部命令_linux_06

6.打印单行
day08 sed 流编辑器常用选项和内部命令_java_07

删除 排除用法跟打印差不多 把p打印换成d删除符就行了
1.删除包含root字符的行
day08 sed 流编辑器常用选项和内部命令_编程_08

2.删除第一行到最后一行 $表示结尾最后一行
day08 sed 流编辑器常用选项和内部命令_编程_09

-i 选项 操作对文件生效
1.-i 正真改变文件
day08 sed 流编辑器常用选项和内部命令_编程_10

内部命令 a追加
1.将内容追加到地五行的后面
day08 sed 流编辑器常用选项和内部命令_java_11

2.将多行内容追加到文件中 \n 换行符 \t tab 键
day08 sed 流编辑器常用选项和内部命令_java_12

3.根据字符串进行追加内容
day08 sed 流编辑器常用选项和内部命令_编程_13

内部命令i插入 在选择的数据前面插入内容
1.在第一行的前面插入数据
day08 sed 流编辑器常用选项和内部命令_编程_14

2.在最后一行的前面插入数据
day08 sed 流编辑器常用选项和内部命令_linux_15

内部命令 改 替换
s :替换 g: 全局 i: 不区分大小写
语法; sed 's#old旧字符#new新字符#g' 文件名
1.全局替换root改成admin
day08 sed 流编辑器常用选项和内部命令_编程_16

  1. 在每个root后面加上一个test
    day08 sed 流编辑器常用选项和内部命令_编程_17

3.给文件的每行前面加上#
day08 sed 流编辑器常用选项和内部命令_编程_18

4.删除每行前面的#
day08 sed 流编辑器常用选项和内部命令_编程_19

5.将某个字符全部删除
day08 sed 流编辑器常用选项和内部命令_java_20

排除空行删除空行
PS: ^ 以什么开头 $以什么结尾 加在一起就是^$ 排除有空格或者tab键的空行
1.排除空行删除空行
day08 sed 流编辑器常用选项和内部命令_java_21

后向应用 () 扩展正则
PS:前期定义 后期调用 \1 \2 第几个括号的内容就用第几个
1.取ip地址
day08 sed 流编辑器常用选项和内部命令_java_22

2.将passwd的第一列跟最后一列进行调换
day08 sed 流编辑器常用选项和内部命令_编程_23

3.打印行号
day08 sed 流编辑器常用选项和内部命令_java_24