15、使用类似的技术查找/usr/share/doc 下含有'regular expression',但不含'perl'的文档(均为大小写敏感)
16、列出/usr/share/doc 下任何含有美国州名和9位邮政编码的(格式:XX NNNNN-NNNN)、
且文档名以".txt"结尾的文档。
实验4:探索管道的应用
任务:
1、在实验1a中,您使用了多种字符处理程式,在4步骤内建立了排序的shell 列表。在本实验中您将完成同样的任务,但是只用一步。
为了建立排序的shell 列表,组合实验1a中步骤3到6的命令。和上次实验不同,这次无需任何临时文档。因为整个操作多次将输出管道定向到另一个命令中。
$ cut -d: -f7 passwd | sort | uniq -c | sort -nr
18 /sbin/nologin
5 /bin/false
4 /bin/bash
2 /dev/null
1 /sbin/shutdown
1 /sbin/halt
1 /bin/sync
1
2、要查看任何以root 运行,按字母表排序的进程列表,使用ps 输出带用户名的进程列表,然后管道定向到grep 以产生只有root 所拥有的进程列表。^告诉grep 只在每行的行首查找root 字串
$ ps auxw | grep ^root
3、假设您需要将这些数据传给一个只需要进程名的script。为了产生该列表,使用tr 和cut的组合。首先,用tr 将空格压缩成cut 能理解的分界符(这里是a%)。然后,使用cut 只显示进程名(tr 输出的第11列)
$ ps auxw | grep ^root | tr -s [:blank:] [a%] | cut -d% -f11
4、现在我们有了属于root 进程的列表。但是我们让cut 只显示第11列,这样我们失去了该进程的命令行参数。在第二步中,我们知道最后一个进程syslogd带有参数-m 0,但是在第三步
我们只看到syslogd。将-f11 改为-f11-,使得cut 将11列到最后的列全部裁减输出。
$ ps auxw | grep ^root | tr -s [:blank:] [a%] | cut -d% -f11-
5、我们几乎已达到了需要的输出。记住我们使用了tr 转换空格为分界符a%,以使cut 可用。现在我们需要再次用tr 将篶k 转换成空格。
$ ps auxw | grep ^root | tr -s [:blank:] [a%] | cut -d% -f11- | tr [篶k] "[]"
6、就像您前面看到的,在使用命令行工具时,管道是一种很有用的工具。前面这些步骤完成了我们的工作,但是在花费很多时间折腾输出前,请务必确认该程式是否有可能格式化成您所需要的格式。ps,特别地,能输出几乎您能想象的格式。请注意看下面命令的开关是如何完成我们需要的输出的:(哎!)
$ ps -u root -o args
结果:
使用管道的命令的组合,输出root 拥有的系统进程列表。
实验3答案:
1、grep -B2 -A2 "fish" /usr/share/dict/words
4、grep -c "fish" /usr/share/dict/words
5、 grep "t[aeiou]sh" /usr/share/dict/words
6、 "^a.om.*e$"
7、 grep -c "t[aeiou]sh$" /usr/share/dict/words
8、 grep -c "................" /usr/share/dict/words
(为什么不是 grep -c ".\" /usr/share/dict/words ?)
9、 grep -l expansion /usr/share/doc/bash-2.05a/*
10、 grep -c "Linux" /usr/share/doc/bash-2.05a/* | grep -v ":0"
11、grep -R "Havoc" /usr/share/doc
12、 grep -R --include="*txt" ethernet /usr/share/doc
13、 grep -lR --include="*txt" ethernet /usr/share/doc
14、 grep -i autentication `grep -lR --include="*txt" ethernet /usr/share/doc`
15、 grep -ivl perl `grep -Rli --include="*txt" "regular expression"
/usr/share/doc`
16、 grep -R --include="*.txt" " *[A-Z][A-Z] *[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




