shell sed行编辑器

1. sed是什么

sed:功能强大的流式文本编辑器
sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等

2. d 模式操作

删除选择的行
sed '/^UUID/d' /etc/fstab #删除以UUID开头的行
在这里插入图片描述
sed '/^#/d' /etc/fstab #删除#开头的行
在这里插入图片描述
sed '/^$/d' /etc/fstab #删除空行
在这里插入图片描述
sed '1,4d' /etc/fstab #删除1-4行
在这里插入图片描述
sed '/^UUID/d' /etc/fstab’ #删除UUID开头的行
在这里插入图片描述

3. c 模式操作

sed '/^UUID/c\hello \nwestos /etc/fstab #将以UUID开头的行修改为hello, 换行,westos
在这里插入图片描述

4. w 模式操作

sed ‘^#/w /mnt/westosfile’fstab#将fstab中#开头的行写入到/mnt/westosfile
在这里插入图片描述
cat /mnt/westosfile #查看文件内容
在这里插入图片描述
sed '6r westosfile' fstab #将westosfile内容写入到fstab第六行
在这里插入图片描述
sed '/^#/=' fstab #给#开始的所有行加上行号
在这里插入图片描述

5. a 模式操作

sed '/^UUID/a helloword' fstab #给当前行的下一行添加helloword
在这里插入图片描述

6. i 模式操作

sed '/^UUID/i helloword' fstab #给当前行的上一行添加helloword`

在这里插入图片描述

7. p 模式操作

sed -n '/^UUID/p' fstab #打印以UUID开始的行
在这里插入图片描述
sed -n '/#/p' fstab #打印所有包含#的行
在这里插入图片描述
sed -n '2,6p' fstab #打印2-6行内容
在这里插入图片描述
sed -n '2,6!p' fstab #打印2-6行之外的其他行
在这里插入图片描述

8. 其他用法

sed -n -e '/^UUID/p' -e '/^UUID/=' fstab
#打印UUID开始的行,并且增添行号。-e在需要同时执行多个编辑或者替换命令时使用
在这里插入图片描述
sed -n -e '/^UUID/p ; /^UUID/=' fstab
#这里;和-e功能相同
在这里插入图片描述
sed -f rule fstab #使用文件修改fstab
在这里插入图片描述
sed 's/^\//###/g' fstab # 将所有开头的/替换为###,其中s是替换,g表示为所有匹配的行,没有g只替换第一处匹配的行
在这里插入图片描述
sed 's@^\/@###@g' fstab #@和/功能相同
在这里插入图片描述
sed '1,5s/#/@@@/g' fstab #将1-5行中#替换为@@@
在这里插入图片描述
sed 'G' passwd #给文件每行下加空行
在这里插入图片描述
sed '$!G' passwd #最后一行之外的所有行下加空行
在这里插入图片描述
sed '=' passwd #文件每行前一行增加行号
在这里插入图片描述
sed '=' passwd | sed 'N;s/\n//g'
#文件每行上一行加行号,并且取消回车符,N表示一次处理两行
在这里插入图片描述
sed '=' passwd | sed 's/\n//g' #不加N处理一行
在这里插入图片描述
sed -n '$p' passwd #显示最后一行
在这里插入图片描述

N: 提前加载下一行的内容到sed程序
/\不是贪婪模式

  
  
  • 1
  • 2
发布了107 篇原创文章 · 获赞 0 · 访问量 1454

猜你喜欢

转载自blog.csdn.net/weixin_45029822/article/details/104362860