文章目录
一、什么是sed文本编辑器?
SED是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大
sed用来操作纯 ASCII 码的文本
处理时 , 把当前处理的行存储在临时缓冲区中 , 称为“模式空间” (pattern space) ,可以指定仅仅处理哪些行
sed 符合模式条件的处理,不符合条件的不予处理,处理完成之后把缓冲区的内容送往屏幕
接着处理下一行 , 这样不断重复 , 直到文件末尾
原来的内容是在磁盘当中放着,现在用sed命令处理的时候将内容掉入内存的一个地方用户处理,这个处理空间也叫模式空间
sed:功能强大的流式文本编辑器
二、sed的应用
2.1 sed命令格式
调用 sed 命令有两种形式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
2.2 sed对字符的处理
2.3 p 模式操作(按照要求显示行)
sed -n '/\:/p' fstab
sed -n '/UUID$/p' fstab
sed -n '/^UUID/p' fstab 比较加不加-n的区别
sed -n '2,6p' fstab
sed -n '2,6!p' fstab
2.4 d 模式操作(按照要求删除行)
sed '/^UUID/d' /etc/fstab 删除以UUID开头的这一行
sed '/^#/d' /etc/fstab 删除以#开头的内容
sed '/^$/d'/etc/fstab 删除多余空行的内容
sed '2,4d'/etc/fstab 删除第2行到第4行内容
sed '2d;4d'/etc/fstab 删除第2行和第4行内容
sed –n '/^UUID/!d' /etc/fstab 删除时不显示多余内容
2.5 a 模式操作(按照要求添加)
sed '/^UUID/a \hello sed /etc/fstab 在UUID这一行后面添加
sed '/^UUID/a \hello sed\nwestos /etc/fstab' 在UUID这一行添加时换行
2.6 i 模式操作(按照要求插入行)
sed '/^UUID/i\hello sed\nwestos /etc/fstab' 在UUID这一行前面插入(\n 换行)
2.7 c 模式操作(按照要求改变行)
sed '/^UUID/c\hello sed\nwestos /etc/fstab' 更改以UUID开头这一行内容为hello....
2.8 w 模式操作(按照要求写入行)
sed '/^UUID/w /mnt/chen1' /etc/fstab 将UUID开头的这一行写入/mnt/chen1这个文件
sed -n '/^UUID/w /mnt/chen1' /etc/fstab 加入-n不显示其他
sed '/^UUID/='/etc/fstab 给UUID开头的添加行号
sed '6r /etc/issue' /etc/fstab 将目标文添加到源文件的第6行
2 .9 sed 的其他用法
sed -n '/^UUID/=' fstab
sed -n -e ‘/^UUID/p' -e '/^ UUID/=' fstab -e起到;的作用
sed -e 's/brown/green/; s/dog/cat/' data
sed -f rulesfile file
sed 's/^\//#/'/etc/fstab
sed 's@^/@#@g'/etc/fstab
sed 's/\//#/'/etc/fstab
sed 's/\//#/g/'/etc/fstab
sed 'G' data
sed '$!G' data
sed '=' data | sed 'N; s/\n/ /'
sed -n '$p' data