创新路
我们一直在努力

sed的简单使用

sed命令是一个面向字符流的非交互式编辑器,功能同awk类似,sed是进行逐行处理,可处理前一个命令得出的结果

sed文本处理工具的用法

    用法1: 前置命令 | sed  [选项]  '条件指令'       —适用于在得出结果中处理

    用法2: sed  [选项]  '条件指令'  文件…        —适用于在文件中处理数据

    选项: -n:屏蔽默认的输出,sed默认输出会读取文件中的所有内容

                     例:输出文件a.txt中的第一行

                           sed -n '1p' a.txt  //如不加-n则默认输出第一行后并且继续输出全文

               -r:让sed支持扩展正则

               -i:让sed直接修改源文件,不加-i则sed默认在内存中修改文件,源文件不做修改

    条件指令: 
                p:内容输出到屏幕上  例:sed -n '1p' a.txt //输出第一行

                d:删除行  例:sed '1d' a.txt  //删除第一行后输出全文

                s:替换内容  格式: s/旧内容/新内容/选项  //选项可以是第几个,替换第几个就填几,第一个可以默认不填写,全部则用g

                i:在指定的行前面插入文本   例:sed '2a AAAAA' a.txt  //在第二行后面追加文本AAAAA行

                a:在指定的行后面追加文本  例:sed '2i BBBBBB' a.txt  //在第二行前面插入行BBBBBB

                c:替换指定的行  例:sed '2c CCCCCC' a.txt  //把第二行替换为CCCCCC

                 例:sed 's/天上/地下/g' a.txt  //a.txt中的'天下'所有替换成'地下'

              注:条件指令可以是行号,也可以使用正则匹配,但是使用正则的时候需要把正则用//包裹起来 如 /正则/

                 使用多个指令时可以用 ; 分隔 例:sed -n '1p;3p' a.txt //打印a.txt中的第一行和第三行

                 替换有时候也能当删除d用

     例子:原文

image.png

1.显示第一到三行和第五行

sed -n '1,3p;5p' a.txt

image.png

2.删除每行的第二个字符

sed 's/.//2' a.txt

image.png

3.将每行的第一个字符和最后一个字符互换

sed -r 's/^(.)(.*)(.)$/\3\2\1/' a.txt

image.png

4.显示包含'君'或者'酒'的行

sed -n '/[君酒]/p' a.txt

image.png

未经允许不得转载:天府数据港官方信息博客 » sed的简单使用

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机