Linux文本处理之sed文本编辑器

文章目录

    • 一、什么是sed文本编辑器?
    • 二、sed的应用
      • 2.1 sed命令格式
      • 2.2 sed对字符的处理
      • 2.3 p 模式操作(按照要求显示行)
      • 2.4 d 模式操作(按照要求删除行)
      • 2.5 a 模式操作(按照要求添加)
      • 2.6 i 模式操作(按照要求插入行)
      • 2.7 c 模式操作(按照要求改变行)
      • 2.8 w 模式操作(按照要求写入行)
      • 2 .9 sed 的其他用法

一、什么是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对字符的处理

Linux文本处理之sed文本编辑器_第1张图片

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

Linux文本处理之sed文本编辑器_第2张图片

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	删除时不显示多余内容

Linux文本处理之sed文本编辑器_第3张图片
Linux文本处理之sed文本编辑器_第4张图片
Linux文本处理之sed文本编辑器_第5张图片

2.5 a 模式操作(按照要求添加)

sed '/^UUID/a \hello sed /etc/fstab 	在UUID这一行后面添加
sed '/^UUID/a \hello sed\nwestos /etc/fstab'  在UUID这一行添加时换行

Linux文本处理之sed文本编辑器_第6张图片

2.6 i 模式操作(按照要求插入行)

sed '/^UUID/i\hello sed\nwestos /etc/fstab'	在UUID这一行前面插入(\n 换行)

Linux文本处理之sed文本编辑器_第7张图片

2.7 c 模式操作(按照要求改变行)

sed '/^UUID/c\hello sed\nwestos /etc/fstab'		更改以UUID开头这一行内容为hello....

Linux文本处理之sed文本编辑器_第8张图片

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行

Linux文本处理之sed文本编辑器_第9张图片Linux文本处理之sed文本编辑器_第10张图片
Linux文本处理之sed文本编辑器_第11张图片
Linux文本处理之sed文本编辑器_第12张图片

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

Linux文本处理之sed文本编辑器_第13张图片
Linux文本处理之sed文本编辑器_第14张图片

Linux文本处理之sed文本编辑器_第15张图片
Linux文本处理之sed文本编辑器_第16张图片Linux文本处理之sed文本编辑器_第17张图片
Linux文本处理之sed文本编辑器_第18张图片
Linux文本处理之sed文本编辑器_第19张图片
Linux文本处理之sed文本编辑器_第20张图片
Linux文本处理之sed文本编辑器_第21张图片
Linux文本处理之sed文本编辑器_第22张图片

你可能感兴趣的:(shell,sed,文本处理)