一、作业(练习)内容:
1、总结本此课程中所涉及命令的使用方法及相关示例展示;
Linux文本处理三剑客:
grep: 文本过滤工具;
sed:文本编辑器(行);stream editor
awk:文本报告生成器;Linux上awk的实现为gawk
grep 【参数】【字符串或者正则表达式】【文件名....】
-i 忽略大小写
-c 显示被匹配到的行数
-n 输出行号
-v 反向选择,即找没有搜索字符串的行
-o 仅显示匹配到的内容
-w 匹配单词
-A # 连同匹配行的下#行一并显示,#代表任意数字
-B # 连同匹配行的上#行一并显示,#代表任意数字
-C # 连同匹配行的上下#行一并显示,#代表任意数字
-R或-r 递归搜索目录或子目录下匹配的字所在文件(可配合find命令
-E 相当于egrep 支持扩展的正则表达式
-F 相当于fgrep 不支持正则表达式
--color对匹配的内容以颜色显示
2、总结基本正则表达式及扩展正则表达式
正则表达式: 默认匹配次数:贪婪模式,尽可能多的去匹配
. 匹配任意单个字符
\.表示.本身 \逃逸符
* 匹配其前面的字符任意次可为0次
.* 任意长度的任意字符
\? 匹配其前面字符1次或0次
x\{m\}:匹配其前面的字符“x”m次(精确匹配)
x\{m,\}:匹配其前面的字符“x”至少m次
x\{m,n\}:匹配其前面的字符“x”至少m次,至多n次
\{1,\} 1次至无上限 \{0,3\}至少3次
^ 锚定行首,此字符后面的任意内容必须出现在行首
$ 锚定行尾,次字符前面的任意内容必须出现在行尾
^$表示空行
[ ] 匹配指定范围内的任意单个字符
[^ ] 匹配指定范围外的任意单个字符
\< 其后面的任意字符必须作为单词的首部出现
\> 其前面的任意字符必须作为单词的尾部出现
\<\> 锚定单词例如 \<root\>
纯数字 [[:digit:]]或[0-9]
小写字母 [[:lower:]]或[a-z]
大写字母 [[:upper:]]或[A-Z]
大小写字母 [[:alpha:]]或[a-zA-Z]
数字加字母 [[:alnum:]]或[0-9a-zA-Z]
空白字符 [[:space:]] 非空白字符[^[:space:]]
标点符号 [[:punct:]]
\d 匹配任何十进制数,相当于[0-9] -P选项加上
\D 匹配任何非数字字符,相当于[^0-9] -P选项加上
\s 匹配任何空白字符,
\S 匹配任何非空白字符,
\w 匹配任何字母数字字符,相当于[a-zA-Z0-9]
\W 匹配任何非字母数字字符,相当于[^a-zA-Z0-9]
\\ 匹配"\"
\( \) 分组后项引用 \1 引用第一个左括号以及与之对应的右括号所包括的所有内容。 \2 \3 …
扩展正则表达式中增加了几个与正则表达式有区别的新内容:
+ 匹配其前面的字符至少1次 \{1,\}正则中近似
? 匹配紧挨在其前面的字符0次或1次 \?正则中近似
{m,n} 匹配前面字符至少m次至多n次 {1,}表示1至无限 {0,3}表示0-3
()分组 \1 \2 \3 …
| 或者
3、显示/etc/passwd文件中以bash结尾的行
4、显示/etc/passwd文件中的两位数或三位数
5、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
或者:
6、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
7、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
8、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
9、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
10、找出ifconfig命令执行结果中1-255之间的数字