LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: KornLee

grep,sed,awk命令实例大练习[整理]

[复制链接]
发表于 2003-2-16 20:05:06 | 显示全部楼层
结果确实是乱的啊,但它要求的确实是这样的输出。
发表于 2003-2-16 22:33:30 | 显示全部楼层
那它编出来的是什么东西的???
发表于 2003-2-17 09:46:38 | 显示全部楼层
最初由 pinksnoopy 发布
那它编出来的是什么东西的???


你可以参考:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=21065
第九章来了解awk。
发表于 2003-2-17 10:20:56 | 显示全部楼层
1 awk 'BEGIN {FS=":"} {print $2}' awkdata
2 awk 'BEGIN {FS=":"} {if($1~/Dan/) print $2}' awkdata
3 awk 'BEGIN {FS=":"} {if($1~/Susan/) print $1,$2}' awkdata
4 awk '{if($1~/^D/) print $1}' awkdata
5 awk '{if($1~/^[C,E]/) print $1}' awkdata       
6 awk 'length($1)=="4" {print $1}' awkdata
7 awk 'BEGIN{FS=":"} {OFS=""} {print $2," ",$1}' awkdata |  awk '{if($1~/\[916/) print $3}'
8 awk 'BEGIN{FS=":"} {OFS="$"} {if($1~/Mike/) print "",$3,$4,$5}' awkdata
9 awk 'BEGIN{FS=":"} {OFS=""} {print $2," ",$1}' awkdata | awk '{print $4","$3}'
10
#!/bin/awk -f
BEGIN {FS=":"}
{if($1~/Savage/) print $1,$2}
{if($1~/Chet/) print $3,$4,$5}
{if($3~/250/) print $1}

第9题是显示姓,后面的例子怎么是显示名在前呢?题目本身有问题
第10题很奇观,排列的顺序太乱了。。。
 楼主| 发表于 2003-2-17 14:26:49 | 显示全部楼层
是很奇观!纳闷ing~~~
发表于 2003-2-19 23:33:19 | 显示全部楼层

grep POP datafile|grep 'connected[ ]from' datafile

grep POP datafile|grep 'connected[ ]from' datafile
发表于 2003-2-19 23:34:10 | 显示全部楼层

整结答案

grep命令练习
文件:datafile
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 92086: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, DeLuth, MN 23850:4/12/23:780900
Fred Fardbarkle:674-843-1385:20 Parak Lane, DeLuth, 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
1.显示所有包含San的行
grep San datafile
2.显示所有以J开始的人名所在的行
grep ^J datafile
3.显示所有以700结尾的行
grep 700$ datafile
4.显示所有不包括834的行
grep -v 834 datafile
5.显示所有生日在December的行
grep [:::]12[:/:] datafile
6.显示所有电话号码的区号为498的行
grep [:::]498- datafile
7.显示所有这样的行:它包含一个大写字母,后跟四个小写字母,一个冒号,一个空格,和一个大写字母
grep [A-Z][a-z][a-z][a-z][a-z][:::][[:space:]][A-Z] datafile
8.显示姓以K或k开头的行
grep -i '[a-z][ ]k' datafile

grep -i [a-z][[:blank:]]k
9.显示工资为六位数的行,并在前面加行号
grep -n '[0-9][0-9][0-9][0-9][0-9][0-9]$' datafile
10.显示包括Lincoln或lincoln的行,并且grep对大小写不敏感.
grep -i '[L|l]incoln' datafile
发表于 2003-3-16 18:11:50 | 显示全部楼层

辛苦了!

很精彩的帖子!呵呵,对俺帮助很大,谢过了~
发表于 2003-7-3 12:55:20 | 显示全部楼层
grep -i '[a-z][ ]k' datafile

grep -i [a-z][[:blank:]]k
  为什么这里加引号与没加引号差一个[]
发表于 2003-8-14 00:40:40 | 显示全部楼层
怎么打印处一行中首个字母是#的那一行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表