文档章节

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

d
 doudou___9958
发布于 2016/10/26 19:47
字数 1038
阅读 2
收藏 0
点赞 0
评论 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
成都
awk的基本概念,基础用法和高级用法

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

狐狸和鳄鱼 ⋅ 04/20 ⋅ 0

9.4/9.5 sed工具(上、下)

9.4-9.5 sed命令 sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern s...

Champin ⋅ 2017/11/21 ⋅ 0

查找目录下的所有文件中是否含有某个字符串 

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1...

wangxuwei ⋅ 05/07 ⋅ 0

Linux 中几个高效过滤命令

过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,...

问题终结者 ⋅ 05/15 ⋅ 0

每日一道shell练习(09)——sed处理

1. 习题 对一个文件,1至5行删除带有英文的行,6至10行删除里面的英文字符; 2. 分析 这种要求,用sed命令就可以解决了,主要用到匹配替换的知识。 3. 脚本 前两个要求,必须使用行号匹配。主...

hello_cjq ⋅ 05/29 ⋅ 0

sed工具与正则表达式的使用(shell第四天)

sed工具 【流式编辑器】 —— 非交互,基于模式匹配过滤及修改文本 —— 逐行处理,并将结果输出到屏幕 ——可实现对文本的输出,删除,替换,复制,剪切,导入,导出等各种操作 命令格式: ...

Morning晨丿 ⋅ 04/30 ⋅ 0

Shell脚本学习指南摘录---1

1、数字与数值表达式 awk并没有提供字符串转数字的函数,不过awk的做法很简单:只要加个零到字符串里边,例如s = “123”,接着n = 0 + s,便将数字123赋给n了。 2、打印前几行的方式 head -...

断臂人 ⋅ 06/13 ⋅ 0

Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开

准备: cat test.txt134 示例: cat test.txt | xargs1 3 4 可以看出得到的字符串为空格隔开的。 再把上面的字符串用逗号隔开,可以使用tr命令进行空格的替换 cat test.txt | xargs | tr ' ...

easonjim ⋅ 01/20 ⋅ 0

数据科学家必备!12个基本命令行工具帮你摆脱鼠标

原文链接:点击打开链接 摘要: 这篇文章概述了十二个可以用于数据科学项目的类Unix操作系统命令行工具。 这一系列工具不包括任何基本的文件管理命令(pwd、ls、mkdir、rm……)和远程桌面管...

qq_40954115 ⋅ 04/19 ⋅ 0

第十一课(下):grep,sed,awk三剑客

grep命令 grep [-cinvABC] 'word' filename -c行数 -i不区分大小写 -n显示行号 -v取反 -r遍历所有子目录 -A后面跟数字,过滤出符合要求的行以及下面n行 -B后面跟数字,过滤出符合要求的行以及...

Linux学习笔记 ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 22分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 33分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 今天 ⋅ 9

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 今天 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部