第6周复习课(5月2日)

课程内容:

复习
扩展
1、打印某行到某行之间的内容http://ask.apelearn.com/question/559
2、sed转换大小写 http://ask.apelearn.com/question/7758
3、sed在某一行最后添加一个数字http://ask.apelearn.com/question/288
4、删除某行到最后一行 http://ask.apelearn.com/question/213
5、打印1到100行含某个字符串的行 http://ask.apelearn.com/question/1048

1、打印某行到某行之间的内容http://ask.apelearn.com/question/559

例如:有个文件test的内容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取
[abcfd]
123
324
444
[rty]
这一部分出来呢?

解答:

直接vim一个test.txt或者touch test.txt,然后vim test.txt粘贴内容保存并退出。

# sed -n '/\[abcfd\]/,/\[rty\]/p' test.txt 具体操作截取符合条件的内容

2、sed转换大小写 http://ask.apelearn.com/question/7758

sed中,使用\u表示大写,\l表示小写

新建yw.txt文件并编辑内容,可以先cat查看文件内容。

①把每个单词的第一个小写字母变大写

[root@jimmylinux-002 test]# sed 's/\b[a-z]/\u&/g' yw.txt

②把所有单词小写变大写

[root@jimmylinux-002 test]# sed 's/[a-z]/\u&/g' yw.txt

③把所有单词大写变小写

[root@jimmylinux-002 test]# sed 's/[A-Z]/\l&/g' yw.txt

3、sed在某一行最后添加一个数字http://ask.apelearn.com/question/288

源文件内容

[root@jimmylinux-002 test]# sed 's/\(^a.*\)/\1 12/' test1.txt

4、删除某行到最后一行 http://ask.apelearn.com/question/213

定义一个标签a,匹配c,然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。

if 匹配"c"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循环,d命令删除。

[root@jimmylinux-002 test]# sed '/c/{p;:a;N;$!ba;d}' test2.txt

5、打印1到100行含某个字符串的行 http://ask.apelearn.com/question/1048

这个需求,其实就是sed指定行范围匹配。

[root@jimmylinux-002 test]# sed -n '1,100{/abc/p}' a.txt

复习sed实例操作的更多相关文章

  1. sed实例精解--例说sed完整版

    原文地址:sed实例精解--例说sed完整版 作者:xiaozhenggang 最近在学习shell,怕学了后面忘了前面的就把学习和实验的过程记录下来了.这里是关于sed的,前面有三四篇分开的,现在都 ...

  2. [转]使用Xcode 4发布App 实例操作

    使用xcode 4发布app 实例操作是本文介绍的内容,不多说,我们直接进入话题. 1.iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobile ...

  3. Flashback Drop实例操作

    1.Flashback DropFlashback Drop 是从Oracle 10g 开始出现的,用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle B ...

  4. 文本处理sed常用操作

    文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...

  5. 第11章:sed进阶操作

    第11章:sed进阶操作 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法 sed命令行格式为 ...

  6. 058——VUE中vue-router之实例操作新闻列表单页面应用与路由别名的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 040——VUE中组件之组件间的数据参props的使用实例操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 034——VUE中表单控件处理之使用vue控制radio表单的实例操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. php5.4以上 mysqli 实例操作mysql 增,删,改,查

    <?php //php5.4以上 mysqli 实例操作mysql header("Content-type:text/html;charset=utf8"); $conn ...

随机推荐

  1. KETTLE常见问题和优化

    1.创建MySQL空资源库报错问题:因为boolean类型的问题,Mysql中的boolean类型实际上保存为TINYINT,需要手动的修改生成资源库的sql脚本,将其中的插入用户ENABLED的值由 ...

  2. js取两位小数点

    var money = one.money; var tmoney = money.substr(0,money.indexOf(".")+3);

  3. git下载安装

    git是目前最流行的分布式版本控制系统,使用它可以很方便的对项目进行管理备份. 1.git下载 登录git官网https://git-scm.com/,点击downloads即可下载安装包 安装包如下 ...

  4. 8.3 NOIP 模拟12题解

    话说这次考试T1和T2是真的水,然而T1CE,T2TLE,T3CE 这不就是在侮辱我的智商啊!之前本机编译都是c++,以后要用c++11. 这次的T1就是一个大型找规律,我的规律都找出来了,但是竟然用 ...

  5. 一种logging封装方法,不会产生重复log

    在调试logging的封装的时候,发现已经调用了logging封装的函数,在被其它函数再调用时,会出现重复的logging.原因是不同的地方创建了不同的handler,所以会重复,可以使用暴力方法解决 ...

  6. Mybatis中的别名的起源

    1.Mybatis中的别名的起源 我们对别名的认识最初是在数据库中,例如:数据库之select时取别名的做法是这样的: select 列名 as 列别名,//方法1 列名 列别名,//方法2 from ...

  7. Python 面向对象之一 类与属性

    Python 面向对象之 类与属性 今天接触了一下面向对象,发现面向对象和之前理解的简直就是天壤之别,在学Linux的时候,一切皆文件,现在学面向对象了,so,一切皆对象. 之前不是一直在学的用面向函 ...

  8. mysql-大量数据的sql查询优化

    1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...

  9. netty服务端的创建

    服务端的创建 示例代码 netty源码中有一个netty-example项目,不妨以经典的EchoServer作为楔子. // 步骤1 EventLoopGroup bossGroup = new N ...

  10. Ios第三方FMDB使用说明

    SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dyli ...