题目来自Unix Shell范例精解这本书中的第四章和第五章,用的都是datebook这个文件,文件内容如下:

Steve Blenheim:238-923-7366:95 Latham Lane, Easton, PA 83755:11/12/56:20300
Betty Boop:245-836-8357:635 Cutesy Lane, Hollywood, CA 91464:6/23/23:14500
Igor Chevsky:385-375-8395:3567 Populus Place, Caldwell, NJ 23875:6/18/68:23400
Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700
Jennifer Cowan:548-834-2348:583 Laurel Ave., Kingsville, TX 83745:10/1/35:58900
Jon DeLoach:408-253-3122:123 Park St., San Jose, CA 04086:7/25/53:85100
Karen Evich:284-758-2857:23 Edgecliff Place, Lincoln, NB 92743:7/25/53:85100
Karen Evich:284-758-2867:23 Edgecliff Place, Lincoln, NB 92743:11/3/35:58200
Karen Evich:284-758-2867:23 Edgecliff Place, Lincoln, NB 92743:11/3/35:58200
Fred Fardbarkle:674-843-1385:20 Parak Lane, Duluth, MN 23850:4/12/23:780900
Fred Fardbarkle:674-843-1385:20 Parak Lane, Duluth, MN 23850:4/12/23:780900
Lori Gortz:327-832-5728:3465 Mirlo Street, Peabody, MA 34756:10/2/65:35200
Paco Gutierrez:835-365-1284:454 Easy Street, Decatur, IL 75732:2/28/53:123500
Ephram Hardy:293-259-5395:235 CarltonLane, Joliet, IL 73858:8/12/20:56700
James Ikeda:834-938-8376:23445 Aster Ave., Allentown, NJ 83745:12/1/38:45000
Barbara Kertz:385-573-8326:832 Ponce Drive, Gary, IN 83756:12/1/46:268500
Lesley Kirstin:408-456-1234:4 Harvard Square, Boston, MA 02133:4/22/62:52600
William Kopf:846-836-2837:6937 Ware Road, Milton, PA 93756:9/21/46:43500
Sir Lancelot:837-835-8257:474 Camelot Boulevard, Bath, WY 28356:5/13/69:24500
Jesse Neal:408-233-8971:45 Rose Terrace, San Francisco, CA 92303:2/3/36:25000
Zippy Pinhead:834-823-8319:2356 Bizarro Ave., Farmount, IL 84357:1/1/67:89500
Arthur Putie:923-835-8745:23 Wimp Lane, Kensington, DL 38758:8/31/69:126000
Popeye Sailor:156-454-3322:945 Bluto Street, Anywhere, USA 29358:3/19/35:22350
Jose Santiago:385-898-8357:38 Fife Way, Abilene, TX 39673:1/5/58:95600
Tommy Savage:408-724-0140:1222 Oxbow Court, Sunnyvale, CA 94087:5/19/66:34200
Yukio Takeshida:387-827-1095:13 Uno Lane, Ashville, NC 23556:7/1/29:57000
Vinh Tranh:438-910-7449:8235 Maple Street, Wilmington, VM 29085:9/23/63:68900

第四章:grep家族练习题

grep练习:自己做的答案,不是标准答案,应该有更简洁的方法1.打印所有包含字符串San的行
grep 'San' datebook2.打印所有名字以J开头的行
grep '^J' datebook3.打印所有以700结尾的行
grep '700$' datebook 4.打印所有不包含834的行
grep -v '834' datebook 5.打印所有生日在十二月的行
grep ':12/[0-9]*/[0-9]*:' datebook6.打印所有电话号码区号为408的行
grep '[a-z]:408-' datebook7.打印所有包含一个大写字母,后跟4个小写字母,一个逗号,一个空格和一个大写字母的行
grep '[A-Z][a-z][a-z][a-z][a-z], [A-Z]' datebook8.打印所有最后一个名字以K或k开始的行
grep '^[A-Z][a-z]* [Kk]' datebook9.打印所有薪水为6位数字的行,前导是一个行号
grep  -n '[0-9]\{6,\}$' datebook10.打印包含Lincoln或lincoln(不区分大小写的行)
egrep  'lincoln|Lincoln' datebook
grep  '[lL]incoln' datebook

第五章:流编辑器sed练习题

sed练习:自己做的答案,不是标准答案,应该有更简洁的方法
1.把Jon的名字改为Jonathan
sed -n  's/^Jon/Jonathan/p' datebook2.删除头3行
sed '1,3d' datebook 3.打印第5~10行
sed -n '5,10p' datebook
4.删除含有Lane的所有行
sed '/Lane/p' datebook5.打印所有生日在十一月或十二月的行
sed -n '/[A-Z]\{2,3\} [0-9]*:1[12]/p' datebook
6.在以Fred开头的各行末尾加上3颗星
sed  '/^Fred/s/$/***/' datebook
sed 's/^Fred.*[0-9]/&***/' datebook7.将所有包含Jose的行都替换为JOSE HAS RETIRED
sed 's/Jose/JOSE HAS RETIRED/g' datebook 8.把Popeye的生日改为11/14/46,假定您不知道Popeye的生日,设法用正则式查找出来
sed -n '/\<Popeye\>/s/[0-9]*\/[0-9]*\/[0-9]*/11\/14\/46/p' datebook
sed -n '\#^Popeye#s#[0-9]*/[0-9]*/[0-9]*#11/14/46#p' datebook 9.删除所有空行
sed '/^$/d' datebook10.写一个能完成下列任务的sed脚本
a) 在第一行上方插入标题PERSONNEL FILE
b) 删除以500结尾的工资项
c) 把名和姓的位置颠倒后,打印文件内容
d) 在文件末尾加上THE ENDa)解答  1i\PERSONNEL FILE
b)解答  /500$/d                                                 #这个有问题,没有删除500结尾的行
c)解答  s/\(^[^ ]\+\) \([^ :]\+\)/\2 \1/
d)解答 $a\THE END

sed脚本输出结果

sed脚本内容:#!/usr/bin/sed
1i\PERSONNEL FILE
/500$/d                                                 #这个有问题,没有删除500结尾的行
s/\(^[^ ]\+\) \([^ :]\+\)/\2 \1/
$a\THE END执行sed脚本:sed  -f  sed datebook:PERSONNEL FILE
Blenheim Steve:238-923-7366:95 Latham Lane, Easton, PA 83755:11/12/56:20300
Boop Betty:245-836-8357:635 Cutesy Lane, Hollywood, CA 91464:6/23/23:14500
Chevsky Igor:385-375-8395:3567 Populus Place, Caldwell, NJ 23875:6/18/68:23400
Corder Norma:397-857-2735:74 Pine Street, Dearborn, MI 23874:3/28/45:245700
Cowan Jennifer:548-834-2348:583 Laurel Ave., Kingsville, TX 83745:10/1/35:58900
DeLoach Jon:408-253-3122:123 Park St., San Jose, CA 04086:7/25/53:85100
Evich Karen:284-758-2857:23 Edgecliff Place, Lincoln, NB 92743:7/25/53:85100
Evich Karen:284-758-2867:23 Edgecliff Place, Lincoln, NB 92743:11/3/35:58200
Evich Karen:284-758-2867:23 Edgecliff Place, Lincoln, NB 92743:11/3/35:58200
Fardbarkle Fred:674-843-1385:20 Parak Lane, Duluth, MN 23850:4/12/23:780900
Fardbarkle Fred:674-843-1385:20 Parak Lane, Duluth, MN 23850:4/12/23:780900
Gortz Lori:327-832-5728:3465 Mirlo Street, Peabody, MA 34756:10/2/65:35200
Gutierrez Paco:835-365-1284:454 Easy Street, Decatur, IL 75732:2/28/53:123500
Hardy Ephram:293-259-5395:235 CarltonLane, Joliet, IL 73858:8/12/20:56700
Ikeda James:834-938-8376:23445 Aster Ave., Allentown, NJ 83745:12/1/38:45000
Kertz Barbara:385-573-8326:832 Ponce Drive, Gary, IN 83756:12/1/46:268500
Kirstin Lesley:408-456-1234:4 Harvard Square, Boston, MA 02133:4/22/62:52600
Kopf William:846-836-2837:6937 Ware Road, Milton, PA 93756:9/21/46:43500
Lancelot Sir:837-835-8257:474 Camelot Boulevard, Bath, WY 28356:5/13/69:24500
Neal Jesse:408-233-8971:45 Rose Terrace, San Francisco, CA 92303:2/3/36:25000
Pinhead Zippy:834-823-8319:2356 Bizarro Ave., Farmount, IL 84357:1/1/67:89500
Putie Arthur:923-835-8745:23 Wimp Lane, Kensington, DL 38758:8/31/69:126000
Sailor Popeye:156-454-3322:945 Bluto Street, Anywhere, USA 29358:3/19/35:22350
Santiago Jose:385-898-8357:38 Fife Way, Abilene, TX 39673:1/5/58:95600
Savage Tommy:408-724-0140:1222 Oxbow Court, Sunnyvale, CA 94087:5/19/66:34200
Takeshida Yukio:387-827-1095:13 Uno Lane, Ashville, NC 23556:7/1/29:57000
Tranh Vinh:438-910-7449:8235 Maple Street, Wilmington, VM 29085:9/23/63:68900
THE END

总结: 不知道为什么/500$/d不能删除以500结尾的行,在vim中查看datebook的行尾符号确实是$符号。工作中grep命令用的比较频繁,sed更多在脚本中用,sed脚本还没有写过。

Unix Shell范例精解---grep和sed练习题相关推荐

  1. Unix shell范例精解 课后题

    1.read   #屏幕输入 read name  #输入名字 2.echo #在终端打印出内容 echo "What is your name ?"  # What is you ...

  2. Shell 脚本详解

    简介 shell :蛋.壳.shell脚本是在操作系统外,可以直接调用系统内核命令的一个脚本语言. shell脚本可以分为两大类组成: 1.命令行 (系统命令行)2.脚本语法 (编程语言的基本语法) ...

  3. shell 编程四剑客简介 find sed grep awk(微信公众号摘抄)

    一,Shell编程四剑客之Find 通过如上基础语法的学习,读者对Shell编程有了更近一步的理解,Shell编程不再是简单命令的堆积,而是演变成了各种特殊的语句.各种语法.编程工具.各种命令的集合. ...

  4. Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数

    在编程中如果能够熟悉shell高阶语法,将对我们进阶为高级程序员有很大的帮助,本文将从Shell重定向 管道命令 awk编程 sed等方面展开介绍. 作者:有勇气的牛排 文章目录 1 shell重定向 ...

  5. 学习云计算运维之shell三剑客(grep、sed、awk)一篇就够了!!!

    正则表达式 一:什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串", 这个"规则字符串 ...

  6. shell脚本详解(十)——sed编辑器的使用方法

    shell脚本详解(十)--sed编辑器的使用方法 一.sed编辑器 二.sed编辑器工作流程 1.读取: 2.执行: 3.显示: 4.注: 三.命令格式 四.常用选项 五.常用操作 六.使用地址 s ...

  7. cut\grep\awk\sed命令详解

    cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的 ...

  8. linux三剑客试题,Linux三剑客(grep、sed、awk)详解

    Linux三剑客(grep.sed.awk)详解 前言:本文主要介绍一下Linux中最重要的三个命令,他们在业界被誉为"三剑客",它们分别是:awk,sed,grep.它们三个侧能 ...

  9. 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

最新文章

  1. 如何获取公众号中html,[技巧] 如何获取公众号图文里的视频地址
  2. 京东典型广告推广源码示例一
  3. ext 部署到 tomcat服务器下,通过http8080端口查看
  4. SAP WebIDE 里的 neo-app.json 文件用途
  5. PHP判断客户端的浏览器类型
  6. 微信小程序image组件中aspectFill和widthfix模式应用详解
  7. .NET简谈插件系统开发模式
  8. Windows下80端口被进程SystemPID=4占用的解决方法
  9. hibernate 查询id为空懒加载_hibernate 查询时指定查询字段、级联表的一种方式
  10. mysql 5.7 创建用户_MySQL 5.7 创建用户并授权
  11. 洛谷 1429 平面最近点对(加强版) 快排 非点分治或kdtree
  12. HTML元素分类【三种类型】
  13. lstm数学推导_ICML 2019 | 神经网络的可解释性,从经验主义到数学建模
  14. 【图像增强】基于脉冲神经网络PCNN实现图像增强附matlab代码
  15. Gamit 数据处理,相关的文件配置
  16. 淘宝双十一自动做任务方案
  17. 股票大作手回忆录读书笔记
  18. zigbee应用实践
  19. 带有鸿蒙logo的壁纸,鸿蒙OS Logo曝光
  20. 官宣一一塔米狗企业并购图谱功能上线啦

热门文章

  1. mysql中的mul
  2. 账号泄露,更换密码非常态?
  3. 开源一个简单的RTS游戏(Unity)
  4. Android 屏幕常亮
  5. Android studio安装配置
  6. Navicat连接oracleTNS无监听程序解决方法
  7. 智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发
  8. 【C】【笔记】《C和指针》 第一章 快速上手 第二章 基本概念 第三章 数据 第四章 语句 第五章 操作符和表达式
  9. 计算机管理win18,推荐:很多人不全知道的Windows7的19个新特性
  10. 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法