美文网首页sed
Linux流编辑命令sed

Linux流编辑命令sed

作者: 会飞的蜗牛07 | 来源:发表于2019-01-11 00:04 被阅读2次

参数介绍

-n - 只打印经过sed特殊处理的那一行(或者动作);
-e - 直接在命令列模式上进行sed的动作编辑;
-f filename - 直接运行filename内的sed动作;
-r - 支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i - 直接修改读取的文件内容,而不是输出到终端;

function:
a - 下一行插入,a后面接字串,这些字串会在新的一行出现(目前的下一行);
i - 下一行插入,i后面接字串,这些字串会在新的一行出现(目前的上一行);
c - 取代,c的后面可以接字串,这些字串可以取代n1,n2之间的行!
d - 删除;
p - 打印,通常会与参数sed -n一起运行;
s - 替换,例如1,20s/old/new/g就是将1-20行中所有的old替换为new;

实例

指定行号操作

sed -n '1,3p' file # 指定行号打印
sed -i '3d' file # 指定行号删除
sed -i '2a ni hao' file # 指定行号后面增加
sed -i '2i ni hao' file # 指定行号前面增加

根据行内容操作

sed -n '/^5/ p' file # 匹配行内容打印,支持正则
sed -i '/^5/ d' file # 匹配行内容删除
sed -i '/开始标志/,/结束标志/{//!d}' file # 删除匹配行之间的内容
sed -i '/开始标志/,/结束标志/{//d}' file # 删除匹配行
sed -i '/开始标志/,/结束标志/d' file # 删除匹配行和匹配行之间的内容
sed -i '1,20s/待替换的字符串/替换字符串/g' file # 匹配行内容替换,可以指定行号范围
sed -i -e 's%^xxx.*%xxx=ddd%g' filename # 对file中的变量进行赋值
​sed '^xxx=/!d;s/.*=//' filename # 获取file中变量的赋值
find . -name test.txt | xargs sed -i '$a\zzzzzz'​ # 在test.txt的最后一行添加字符串

命令行中含变量

sed -i "\$a$变量" file # 在file后面增加变量的内容​,当不是变量时,不需要最前面的\

使用-f参数

cat make_boot.log | sed -f del_make.sed > make_boot.log.1

sed脚本del_make.sed的内容为

/GNU Make 3.81/,/PARTICULAR PURPOSE./d # 删除固定格式的内容
/This program built for x86_64-redhat-linux-gnu/d
/Updating goal targets..../d
/makefiles...$/d

相关文章

  • 如何使用 sed 命令删除文件中的行

    Sed 代表流编辑器(Stream Editor),常用于 Linux 中基本的文本处理。sed 命令是 Linu...

  • Linux流编辑命令sed

    参数介绍 -n - 只打印经过sed特殊处理的那一行(或者动作);-e - 直接在命令列模式上进行sed的动作编辑...

  • sed命令的使用

    sed命令 sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数...

  • sed常用操作命令

    sed: stream editor , 流/行 编辑器 ; sed 命令详解: sed [OPTIONS].....

  • 07系统三剑客命令

    sed命令 字符流编辑工具(行编辑工具),按照每行中的字符进行处理操作vi/vim 全屏编辑工具 sed命令...

  • Linux-sed-1

    #############20190820- sed命令用法详解 sed命令用法 sed是一种流编辑器,它是文本处...

  • linux中sed切割方法,linux中sed用法

    SED是什么? sed:Stream EDitor 流编辑器SED是一项Linux[https://so.csdn...

  • sed命令详解

    原文链接:sed命令_Linux sed 命令用法详解:功能强大的流式文本编辑器 http://man.linu...

  • sed和gawk

    sed sed是流编辑器,是会在编辑器处理数据之前要预先提供一组规则来编辑数据流。sed根据命令来处理数据流中的数...

  • Linux处理文本的第二驾马车—sed命令

    Linux处理文本的第二驾马车——sed命令 sed(流编辑器)是最早支持正则表达式的工具之一,至今仍然用于文本处...

网友评论

    本文标题:Linux流编辑命令sed

    本文链接:https://www.haomeiwen.com/subject/bdxtdqtx.html