Sed详解

1、说明
sed 一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
2、用法
sed:
用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  -n, --quiet, --silent
                 取消自动打印模式空间
  -e 脚本, --expression=脚本
                 添加“脚本”到程序的运行列表
  -f 脚本文件, --file=脚本文件
                 添加“脚本文件”到程序的运行列表
  --follow-symlinks
                 直接修改文件时跟随软链接
  -i[SUFFIX], --in-place[=SUFFIX]
                 edit files in place (makes backup if SUFFIX supplied)
  -l N, --line-length=N
                 指定“l”命令的换行期望长度
  --posix
                 关闭所有 GNU 扩展
  -r, --regexp-extended
                 在脚本中使用扩展正则表达式
  -s, --separate
                 将输入文件视为各个独立的文件而不是一个长的连续输入
  -u, --unbuffered
                 从输入文件读取最少的数据,更频繁的刷新输出
  -z, --null-data
                 separate lines by NUL characters
      --help     打印帮助并退出
      --version  输出版本信息并退出
示例:sed '2,5d' 
其中2,5表示2-5行(包含);d表示删除
a新增
c取代
d删除
i插入
p列印
s取代,通常搭配正则使用
举个栗子
sed '3,$d'					删除第三行到最后一行,$标示最后一行
sed '2a 这是追加的内容'		在第二行后追加内容
sed '2i 这是插入的内容'		在第二行前插入内容
sed '2c 这是替换后的内容'	替换第2~5行内容
sed '2-5p'					打印第2~5行内容
sed  -n '/root/p'			打印包含有root的行
/sbin/ifconfig eth0 |grep 'inet 地址'| sed 's/^.*地址://g' | sed 's/广播.*$//g'
等同于
/sbin/ifconfig eth0 |grep 'inet 地址'| sed -e 's/^.*地址://g' -e 's/广播.*$//g'
备注:/sbin/ifconfig eth0 |grep 'inet addr'| sed -e 's/^.*addr://g' -e 's/Bcast.*$//g'
3、实战案例-替换安卓AndroidManifest.xml配置项
echo ' '|sed -e 's#name=".*"#name="123456"#g'
备注:s后面跟着的是匹配符可以为/或者?或者#,g是全部替换

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏bluesummer

用Windbg来分析.Net程序的dump

介绍 1. 什么是Windbg WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还...

4046
来自专栏程序猿

搭建微信小程序教程:基于CentOS 7.6的教程

一个域名、一个SSL证书、一个程序账号、一台CentOS服务器。 然后主要的步骤就是: 1、解析域名; 2、部署服务器; 3、上传SSL证书; 4、填写小程序...

7577
来自专栏北京马哥教育

Linux连不上网?一种方法应对千重难题!

问题:我们在使用Linux虚拟机的时候经常会出现各种各样的问题,其中的一个问题就是Linux虚拟机连不上网,这是我最近经常遇到的问题,下面提供一种方法解决这个问...

3556
来自专栏weixuqin 的专栏

一些杂想

(目前个人认为,Django 还是应该使用 Django1.11版本,稳定长期支持到2020年,兼容性也好。)

983
来自专栏吴柯的运维笔记

Sed编辑器入门基础用法手册

简介 Sed(Stream Editor)是一款流编辑工具,可以实现对文本进行过滤和替换操作,在批量修改文件时简便一些。 -非交互 -逐行处理(一次读取一行...

2906
来自专栏Python研发

django-celery定时任务以及异步任务and服务器部署并且运行全部过程

应用Celery之前,我想大家都已经了解了,什么是Celery,Celery可以做什么,等等一些关于Celery的问题,在这里我就不一一解释了。

9102
来自专栏雪地二货笔记库

nodejs学习笔记(1)-安装配置和helloworld

关于nodejs的概念,查了查官网和博客,说他不是一门语言也不是库也不是框架,是一个js的运行环境。 这个概念有些模糊,运行环境这个词让我有些不明所以,又往后查...

1643
来自专栏程序员互动联盟

【专业技术】linux启动流程剖析

半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管...

3707
来自专栏积累沉淀

Linux常用命令大全

系统信息  arch 显示机器的处理器架构(1)  uname -m 显示机器的处理器架构(2)  uname -r 显示正在使用的内核版本  dmide...

26310
来自专栏小程序之家

如何实现小程序与服务器通信

网络请求方式较多,大家可以参考如何在小程序中实现文件上传下载和如何在小程序中实现 WebSocket 通信实现更多与服务器请求。

2.2K5

扫码关注云+社区

领取腾讯云代金券