sed工具

  1. 前言
  2. 常用的参数
  3. 示例
  4. 参考资料

前言

在本篇博客中,主要是讲linux系统常用的工具sed。sed是一个管线命令可以对输入进行替换、删除、增加和检索特定行。

常用的参数

sed [-nefr] [动作]
选项:
-n: 使用静默模式,默认情况下,sed会将所有的stdin都输出到屏幕上,使用-n参数之后仅仅显示处理那一行;
-e: 使用指令列模式进行sed动作编辑;
-f: sed的动作来源于一个文档,一般为`-f filename`,则执行filename文件内的sed动作;
-r: 表示sed支持拓展正则表达式语法;
-i: 直接修改文档,不输出到屏幕。

动作说明: [n1[,n2]]function
n1,n2 不一定会存在,一般表示进行动作的行数,处理10行到20行一般表示为`10,20`

function一般是以下选项:
a: 新增 `a 字符串`表示在当前行后面添一行,内容为字符串内容;
c: 取代 `c 字符串`,表示字符串取代n1,n2表示行的内容;
d: 删除 后不接内容;
i: 插入 `i 字符串`,在目前行的前面新加一行,内容为字符串;
p: 列印 将选择的内容打印出来,一般配合`sed -n`使用;
s: 取代,直接进行取代工作,一般s配合正则表达式使用。

注意,在命令后边下达的指令要用两个单引号括起来,例如操作,sed '2,5d'。

其他更加详细的使用方法通过man sed指令查询。

示例

  1. 将/etc/passwd中的的3到5行删除。命令cat -n /etc/passwd | sed '3,5d'
    删除/etc/passwd的3到5行输出
    当需要删除第二行时,使用命令sed '2d';
    当要删除第二行到最后一行时,使用命令sed '2,$d'

  2. 在/etc/passwd中的第3行前添加’add by sed’。命令cat -n /etc/passwd | sed '3iadd by sed'

在/etc/passwd的第三行前面添加特定内容
3. 在/etc/passwd中的第3行后添加’add by sed’。命令cat -n /etc/passwd | sed '3aadd by sed'
在/etc/passwd的第三行后面添加特定内容

  1. 将/etc/passwd的第二行取代为’this line is replaced by sed’,命令cat -n /etc/passwd | sed '2cthis line is replaced by sed'
    将/etc/passwd的第二行替换

  2. 替换行的部分数据,命令格式sed 's/被替换的字符串/新的字符串/g',将/etc/passwd中的test替换为tt,执行命令cat -n /etc/passwd | sed 's/test/tt/g'
    使用sed工具检索并替换

  3. sed可以直接修改文档内容,可以直接在命令后面接文档名称就可以直接修改文档名称,例如我们将文件中的所有’,’修改为’.’,那么命令为sed 's/,/\./g' filename

参考资料

鸟叔的linux私房菜:< http://linux.vbird.org/ >


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 qinzhtao@163.com

文章标题:sed工具

文章字数:664

本文作者:捌叁壹伍

发布时间:2019-10-08, 16:35:40

最后更新:2019-11-17, 17:38:07

原始链接:http://qzt8315.github.io/2019/10/08/sed工具/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏