有关linux三剑客之sed的一道练习题

1.1 取出a.txt中的908这三个数字:

实例:

[[email protected] tmp]# cat a.txt

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]#

结果是:

[[email protected] tmp]# cat a.txt

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]#

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|sed -n ‘3p‘

908

[[email protected] tmp]#

操作过程(仅供参考):

[[email protected] tmp]# cat a.txt

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed ‘3p‘ a.txt                           忘记加参数-n取消默认输出

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed -n ‘3p‘ a.txt         加了参数后恢复正常只输出匹配的内容

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed -n ‘3s#^.*88)\(.*)jia.*$#\1#gp‘ a.txt  转义符加的不对

sed: -e expression #1, char 27: Unmatched ( or \(

[[email protected] tmp]# sed  ‘3s#^.*88)\(.*) jia.*$#\1#g‘ a.txt    转义符加的还是不对

sed: -e expression #1, char 26: Unmatched ( or \(

[[email protected] tmp]# sed  ‘3s#^.*88)\(.*\) jia.*$#\1#g‘ a.txt    转义符正确后正常了

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb                 但发现默认输出了默认输出,原因是没有加 -n ?

908

[[email protected] tmp]# sed -n  ‘3s#^.*88)\(.*\) jia.*$#\1#g‘ a.txt 加了-n 竟然没内容了

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt 还没找到原因

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt   还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb                                                       还没找到原因

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt   还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed   ‘s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt    还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt   还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed -n   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt  还是觉得是-n

[[email protected] tmp]#

[[email protected] tmp]# sed -nr  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt  是没加-r吗

sed: -e expression #1, char 32: Unmatched ) or \)

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt  还没找到原因

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|xargs ls

还没找到原因

a.txt p.txt  test.txt

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|xargs cat

还没找到原因

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt

还没找到原因

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt         还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|sed ‘3p‘

再加一个sed

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|sed -n ‘3p‘

取消默认输出

908

[[email protected] tmp]# cat a.txt

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]#

[[email protected] tmp]# sed ‘3s#^.*88)\([0-9].*\)jia.*$#\1#gp‘ a.txt  哦,原来忘记了加p

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

908

[[email protected] tmp]# sed -n‘3s#^.*88)\([0-9].*\) jia.*$#\1#gp‘ a.txt 加个-n 就o了

908

[[email protected] tmp]#

时间: 2024-08-24 00:35:38

有关linux三剑客之sed的一道练习题的相关文章

linux三剑客之sed史上最实用教程!

2016老男孩教育的官方博客干货不断,敬请关注! linux三剑客之sed史上最实用教程!猛戳下面地址即可观看! http://blog.oldboyedu.com/commands-sed/

不看绝对后悔的Linux三剑客之sed实战精讲

二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们

深入浅出linux三剑客之sed必杀技一例

转 http://oldboy.blog.51cto.com/2561410/949365 缘起:上完培训课后,同学们对sed加正则处理问题的热情高涨,氛围相当好,但是,有个别同学还是有些晕乎,因此,撰写此文.此例如果搞熟练了,sed和正则的大部分常用技术你掌握起来就简单了. 如果还有不会的,老男孩就拿出最后的讲解必杀技(先保密,嘿!),同学们想不会那是不可能的,除非你们自己主动放弃,哈哈.来,开整~! 老男孩linux培训第三节课程课前第考试一题,问题如下 1.如何取得/etiantian文件

Linux三剑客之sed基本应用

sed:三剑客之第二实现对文件的增加 删除 修改 查询 过滤命令格式:sed 选项 sed内置命令 文件-i-e-naidpsg创建文件tobedu.txt,输入内容,并以此文件为例.[[email protected] ~]# cat -n tobyedu.txt 1 I am toby teacher!2 I like badminton ball ,billiard ball and chinese chess!3 our site is tobyedu.com4 5 my qq num

Linux三剑客grep/sed/awk

grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color=auto 或者 --color:表示对匹配到的文本着色显示 -i:在搜索的时候忽略大小写 -n:显示结果所在行号 -c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数 -o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行 -v:输出不带关键字的行(反向查询,反

linux三剑客之sed入门详解

sed介绍sed流编辑器(stream editor),在三剑客中排行老二,是一款简单的文本编辑语言.sed并不直接处理源文件,而是逐行读取源文件的内容到内存(称模式空间)中,然后在模式空间中使用sed命令处理,再打印模式空间处理后的内容到标准输出.sed的能够实现的功能:增删改查.替换.过滤.取行.sed文本处理原理图 sed命令的语法:sed [选项] 'AddressCommand [修饰符]'inputfile(输入文件)sed命令语法各参数解释 实验环境 [[email protect

Linux 三剑客 -- awk sed grep

顶配awk,中配sed,标配grep 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们能够在达到

linux三剑客之sed

sed命令是一个功能强大的流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,它会把当前处理的文本的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着sed命令会处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,直到文件末尾.需要注意的是,处理前后文件内容并没有改变,除非你使用重定向存储输出或使用特定的选项. 1.使用格式 sed [option] 'AdressCommand' FILE... 2.

Linux三剑客之sed命令

选定行的范围:,(逗号) 删除操作:d命令 显示模式空间内容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 替换操作:s命令 替换文本中的字符串: 全面替换标记g 保持和获取:h命令和G命令 保持和互换:h命令和x命令 sed 简介 sed 工作原理 命令格式 常用选项: 地址定界: 编辑命令: 替换标记: sed元字符集(正则表达式) 高级编辑命令: sed用法实例 作业: 作业: sed命令 sed 简介 Stream