首页 > 代码库 > bash 编程 sed
bash 编程 sed
sed编辑器
流编辑器 可以基于输入到命令行的或是存储在命令文件中的命令来处理数据流中的数据,它每次从输入中读取一行,用提供的编辑命令匹配数据,按命令中指定的方式修改流中的数据,然后将生成的数据输出到STDOUT。默认所有来着STDIN的数据,都会输出的屏幕上,-n 选项 只要经常sed处理的哪一行才会输出到STDOUT上。
命令格式
sed option script file
选项
-e script 执行多个命令
-f file 执行文件中的命令
-n
1 在命令行定义编辑器命令
2在命令行中使用多个编辑命令
命令之间用分号分隔,命令末尾和分号之间不可以有空格。
也可以使用bash shell中的次提示符来分隔命令,而不用分号。只要输入第一个单引号来开始编写,bash会提示输入更多的命令,直到你输入封尾的单引号。
3 从文件中读取编辑器命令
更多的替换选项
默认只替换每行中出现的第一处
s/pattern/replacement/flags
替换标记
数字 表明新文本替换第几处模式匹配的地方
g 全部替换
p 原来行的内容要打印出来 通常会与 –n 选项一起使用
w file 将替换结果写入文件
sed编辑器只替换第二次匹配的模式
替换所有文本出现的地方
p 标记 和 –n 选项一起使用只输出修改过的行
w标记 将输出结果保存在指定文件
使用地址
1 数字方式的行寻址
address命令
address{
命令1
命令2
}
替换第2行
替换2,3行
第2行到结尾的所有行
文本模式匹配
修改用户user 的默认shell
组合命令
删除行
删除命令d,会删除匹配指定寻址模式的所有行
删除第三行
删除指定行到最后一行
模式匹配
插入和附加文本
i 在指定行前面增加一行
a在指定行后面增加一行
插入或附加多行
1在每一行结尾使用 \n 再输入下一行
2每一行使用\ 进入下一行
修改行
c 允许修改数据流中整行的文件的内容
修改命令使用地址区间
= 打印行号
向文件写入
w 用来向文件写入行
从文件读取数据
r 允许将一个独立文件中的数据插入到数据流中