shell学习3--sed流编辑器

       sed编辑器不提供交互使用方式:只能在命令行输入编辑命令、指定文件名,然后屏幕上擦看输出;并且sed没有破坏性,它不会修改文件,除非用shell重定向来保存输出结果,默认情况下所有输出都是输出到屏幕的,所以sed又被称为流编辑器。
        注意:1. sed中凡是可能被shell解释的字符都必须加引号进行保护。
                    2. sed是以行为单位处理文本的。
        格式:sed  参数    ‘command’     filename(s)   eg: sed '1,3p'  file1   打印file1的第一到第三行
        参数:可有可无
                常用参数:
                  -e     多项编辑         sed    -e  ‘1,3p’   -e   ‘4,5p’   file1;
                  -f      指定sed脚本文件名。sed脚本也就是command的集合
                            sed   -f  output.sed    file1
                  -n      取消缺省的输出。sed是默认输出所有行的。取消后,可有命令p来控制输出某一行
        command:  包含两个模块:定址命令和处理命令。
              1.定址命令: 可不出现,表示默认处理所有行。
                        形式可以是数字、正则表达式或者两者的组合。
                        比如: 1,3            表示第一行到地三行 。
                                     /^[a-Z]/         表示以小写字母开头的行。
                                     3,/^[a-z]/   表示第三行到以小写字母开头的行。
              2.处理命令:告诉sed对行进行什么处理,包括打印删除修改等。紧跟在定址命令后面。
                         比如:sed  3,/^[a-z]/p  file1 打印文件file1的第三行到以小写字母开头的行。
                         常用的命令有:
                            a       在当前行后面添加一行或者多行          
                                     sed   '$i the end' file1   #添加’the end‘到文件尾,其他行正常输出
                            i         在当前行前面添加一行或者多行          
                                       sed   ‘1i  the start‘ file1   #添加’the start‘ 到文件头,其他行正常输出
                            d        删除行
                                    sed   ‘1,^[a-z]d'  file1   删除第一行到以小写字母开头的所有行,其他正常输出
                            p        打印行
                                      sed    ‘20,30p' file1   再次输出第20行到第30行,其他正常输出
                            r        读文件,并输出到屏幕
                                      sed   ‘/hello/r   file2’  file1  #遇到包含hello的行时,在该行下面输出file2的内容
                            w       写入文件。
                                     sed   ‘/hello/w   file2‘  file1  # 把包含hello的行写入到file2中
                            s       替换字符串。格式为   s/被替换字符串/替换字符串/替换标志
                                     被替换字符串可用正则表达式来选择,但是替换字符串则不可。
                                      替换标志:表示替换后的操作,可多个操作。
                                              g    在匹配行内全局替换。如果没有,则只替换匹配到的第一个字符串
                                              p     替换完后输出该行
                                              w     把替换完的该行写入文件
                                sed  ‘s/^[a-z]*  /hello/p' file1     #把以小写字母开头的第一个字段替换成hello并输出
                            
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值