文档章节

流媒体编辑器(sed awk 命令使用方式)

d
 doudou___9958
发布于 2016/10/26 19:47
字数 1038
阅读 2
收藏 0

流媒体编辑器定义:

文件就是硬盘上的一段存储空间
文件名就引用的名字
文件的内容就是存储硬盘上的字节
读取文件就一个一个字节读取出来
 
为了减少尽可能少的磁盘io操作采用换行符读取
一次只读一行

1.sed命令:

        sed命令会有自己维护的内存空间
        对文件内容复制到这个内存空间进行编辑操作
        并把结果输出到屏幕上来
1.1sed也叫行编辑器
        sed [options] 'script' File
        script具有特殊意义的一些字符
        也可以通过选项进行操作、

1.2参数:

        -n:静默模式,不输出模式空间中的内容
        -r:可以使用扩展的正则表达式
        -f /path/to/sed_script_file:指定sed脚本
        -e 'script'  -e 'script' 指定多个编辑指令的
        -i:直接编辑原文件

1.3编辑命令:
        d:删除
        p:打印
        i \text:匹配到行之前
        a \text:匹配到行之后
        r /path/to/somefile:在指定位置把另外一个文件内容插入进来
        w /path/to/somefile:将符合条件的所有行保存至指定文件中
        =:显示符合条件的行的行号
        s:查找替换 /要查找的内容// 查找的内容可以使用模式,但替换的内容不行
        正则表达式:
            基本的:
                字符:
                    .
                    []
                    [^]
                次数:
                    *
                    ?
                    grep \?
                    .*
                    {m,n}
                锚定:
                    ^
                    $
                分组:
                    ()
                引用:
                    \1,\2....
 
            扩展的:
                字符:
                    .
                    []
                    [^]
                        [[:lower:]] [[:upper:]]....
                次数:
                    *
                    ?
                    +
                    {m,n}
                锚定:
                    ^
                    $
                或:
                    a|b
                分组:
                    ()
                引用:
                    \1,\2.....    
            sed '地址定界s@查找条件@替换文本@g'
            修饰符:
                g:全局替换
                i:忽略大小写

1.3常用的命令:

             sed '1,3d' /etc/passwd:删除模式空间当中的1-3行
             sed -n '1,3d' /etc/passwd:以静默模式删除模式空间当中的1-3行
             sed '1,3p'/etc/passwd:打印模式空间当中1-3行其他行继续输出,匹配到的会多输出一行
             sed '1i \hello' /etc/passwd   在第一行的前面插入hello

              sed 'i \hello' /etc/passwd   在每一行的前面插入hello
             sed '/^#/i \hello' /etc/passwd  在以#号开头的前一行插入hello
             sed '/^#/w /tmp/filetmp' /etc/passwd 在以#开头的一行后插入并保存/tmp/filetmp文件
             sed '/^#/r /tmp/112' /etc/passwd   在以#开头的一行后插入/tmp/112文件
             sed 's@^#@@g' /etc/passwd:搜索以#开头的并替换为“ ”。   注意这里删除的只是#不是删除的正行
             其中@@@这里面的内容可以现在vim当只进行测试表示意思与///一样。

2.awk命令

            报告生成工具
            对每一行的每一个字段进行操作并格式化,而后进行显示
            变量,条件判断,循环
            主要是生成美观的输出结果
 
2.1用法格式:
            awk [options] 'script' File....
            awk [options] '/pattern/{action}' File....
 
            action:默认 print
2.2模式pattern:
            地址定界:/pat1/,/pat2/
            /pattern/
            expression
            >,<,>=,<=,==,!=,~模式匹配
        BEGIN:
            每一行处理之前预处理
        END:
            每一行处理之后的处理
    awk常用四种分隔符
        输入:
            行分隔符
            字段分隔符
        输出:
            行分隔符
            字段分隔符
    awk内置变量:
        NF:字段数    
        FS:读入分隔符默认空白
        OFS:输出分隔符默认空白    
 
    -F:指定分隔符
    默认空格
    $0整行
    $1第一列
    .....
    地址定界:
        startline,endline
        1,3
        /pat1/,/pat2/,从匹配par1的行到pat2结束之间的行
        /patter/被这个匹配到行都输出

2.3常用命令:

            awk -F ":" '{print $1}' /etc/passwd:打印文件的第一列,以冒号分割的
            awk '/^#/ {print $1}' /etc/fstab:打印以#开头的第一列
            awk 'BEGIN {FS=":"} {print $1}' /etc/passwd 打印文件的第一列,以冒号分割的
            awk '{print "username:"$1,"uid:"$3}' /etc/passwd对第一列前加上username:,第三列前加上uid:
           awk '{printf "username:%s uid:%d",$1,$3}'

            awk 'BEGIN {FS=":";OFS=":"} {print $1}' /etc/passwd
            awk 'BEGIN {FS=":|#";OFS=":"} {print $1}' /etc/passwd
            awk '$3>=500 {print $1}' /etc/passwd打印uid大于500的用户名
            awk '$7~/bash$/ {print $1}' /etc/passwd
            awk '/bash$/ {print $1}' /etc/passwd
            awk '{print $NF}':打印文件的最后一列,即使每一行的最后一列不是统一

© 著作权归作者所有

共有 人打赏支持
d
粉丝 4
博文 44
码字总数 54220
作品 0
成都
linux下grep、awk和sed工具用法概览

linux下grep、awk和sed工具用法概览 在linux下,grep、awk和sed是非常强大的文本处理工具,其中grep命令主要用作文本搜索,而awk和sed命令侧重于文本的编辑等操作,另外awk本身还可以是编程语...

小陶小陶
09/11
0
0
使用sed在文件中定位文本的方式

sed是实现对流的编辑。通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件。但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然...

AlphaJay
2012/03/05
0
0
LINUX的awk和sed的常用用法 && 正则表达式 grep egrep用法

awk的用法 a w k语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息 调用awk 有三种方式调用a w k, 第一种是命令行方式,如: awk –F : ‘commands’ input-files 第二种方法是...

AlphaJay
2011/11/09
0
0
awk的基本概念,基础用法和高级用法

awk: 文本处理三剑客:grep系,sed,awk grep系:grep,egrep,fgrep,基于PATTERN进行文本过滤; sed:流编辑器,逐行编辑器;模式空间,保持空间; awk:报告生成器;格式化文档输出;...

狐狸和鳄鱼
04/20
0
0
9.1-9.7 正则三剑客:grep、sed、awk

grep工具 grep是什么 grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使...

熊猫头先生
06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20.27 分发系统介绍~ 20.30 expect脚本传递参数

分发系统介绍分发系统-expect讲解(也就是一个分发的脚本)场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因...

洗香香
18分钟前
1
0
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

crossoverJie
24分钟前
1
0
软件架构:5种你应该知道的模式

Singleton(单例模式)、仓储模式(repository)、工厂模式(factory)、建造者模式(builder)、装饰模式(decorator)……大概每个上课听讲的程序员都不会陌生——软件的设计模式为我们提供...

好雨云帮
36分钟前
2
0
OSChina 周二乱弹 —— 这只是一笔金钱交易

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《暮春秋色》- 窦唯 / 译乐队 《暮春秋色》- 窦唯 / 译乐队 手机党少年们想听歌,请使劲儿戳(这里) @我没有抓狂:跨服聊...

小小编辑
48分钟前
405
14
df命令、du命令 、磁盘分区

9月25日任务 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 4.1、命令 :df #磁盘空间使用情况 [root@zgxlinux-02 ~]# df 按字节显示 1000Byte=1KB 1000KB=1MB 1000MB=1GB ...

zgxlinux
56分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部