1.wc
统计文件中的行数、单词(用空格分开的字符串)数、字节数
1)wc [options] filename
-l:显示行数
-c:显示字节数
-w:显示字/单词 数
-m:显示字符数
-L:显示最长行的长度
2)wc
输入多行内容,以 “ctr + d”结束,返回统计结果
2.tr
tr [字符集1] [字符集2]
字符格式转换或删除.
在传过来的数据里面匹配字符集1中的字符,若找到,则用字符集2中的对应位置字符替换;或者删除
1)与管道一起用 | tr [123] [abc] 将传入数据中的字符进行替换:1->a 2->b 3->c
2)tr [123] [abc] 输入数据,回车进行转换。ctr+d 退出
tr -d [字符集] 将传入信息中的匹配字符删除
3.cut 根据指定的分割符对传过来的数据进行分割,返回指定的片段。
一般通过管道接收要处理的数据。
cut -d分割符 -f#,#,#
less /etc/passwd |cut -d: -f1,7
cut -d: -f1,7 /etc/passed
上面两个语句结果一样。不会对原文件有影响,只是为了输出。
4.sort 实现文件内容的排序(按照ascii码,默认升序a--z),只用于显示。
sort [options] filename
-f:忽略大小写
-n:比较数值大小
-t:指定分割符,用于将文件内容分割后按照指定段来排序 和-k合用
-k:指定排序的关键段序号 与-t合用
-u:重复的只显示一次
5.uniq 移除重复的行,功能比sort更强大(需要排序后使用)
uniq
-c:为每行显示重复的次数
-d:仅显示重复的行
-u:仅显示不重复的行
6.字符串的模式化搜索
grep [option] "模式" filename
--color=auto 对匹配的字符添加颜色
-o :only,仅显示匹配的字符串
-i :不分大小写
-v :返回不匹配的行
-E :使用扩展的 模式
-A# -A # :显示匹配行,以及匹配行下面的#行
-B# -A # :显示匹配行,以及匹配行上面的#行
-C# -C # :显示匹配行,以及匹配行上面#行和下面#行
grep的模式(正则表达式)
模式:基本模式、扩展模式
grep默认只支持基本的正则表达式(模式)
模式,是一类字符所书写出来的用于表示具有某种特点的文本样式
元字符:用于构建模式,不表示符号本身的意义。
学习正则表达式,就是学习元字符的使用
基本模式元字符:
单字符匹配类:
. 单个任意字符
[ ] 给定范围内的单个字符 例如[abc] 匹配 a 或 b 或 c
[^ ] 给定范围外的单个字符
字符串匹配:
\(字符串\) 匹配字符串apple ,例如 \(apple\) 匹配apple这个字符序列
匹配次数:
* 任意次数其前面的单元。例如 a* 表示任意个 a,\(abc\)* 表示任意个abc
\? 0个或1个其前面的单元。 例如 a\? 表示1个或0个a
\{ m\} m个其前面的单元。
\{m,n\} m--n个其前面的单元。
\{m,\} 至少m个其前面的单元。
\{0,n\} 之多n个其前面的单元。
行位置锚定:
^ 锚定行首,如:^r 表示已r开头的行。
$ 锚定行尾,如: b$ 表示以b结尾的行
(^$ 表示空白行)
单词位置锚定:
\< \b 锚定单词首部,如 \<a 表示以a开始的单词
\> \b 锚定单词尾部,如 b\> 表示以b结尾的单词
(这里的“单词”需要深入理解)
向后引用:
\1 引用前面第一个()匹配到的内容,作为在当前位置需要匹配的内容。比如前面第一个()匹配到abc,则这里的\1就表示要匹配abc,而不是efg;如果前面第一个()匹配到123,则在\1的位置就要匹配123,而不是456.
\2 引用前面第二个()匹配到的内容
或:
\| 如 \<a\|\b> 表示a开头的单词 或者b结尾的单词
egrep [option] "扩展模式" filename
扩展模式元字符:
单字符匹配类:
. 单个任意字符
[ ] 给定范围内的单个字符 例如[abc] 匹配 a 或 b 或 c
[^ ] 给定范围外的单个字符
字符串匹配:
(字符串) 匹配字符串apple ,例如 (apple) 匹配apple这个字符序列
匹配次数:
* 任意次数其前面的单元。例如 a* 表示任意个 a,(abc)* 表示任意个abc
? 0个或1个其前面的单元。 例如 a? 表示1个或0个a
{ m} m个其前面的单元。
{m,n} m--n个其前面的单元。
{m,} 至少m个其前面的单元。
{0,n} 之多n个其前面的单元。
+ 至少一次前面的单元
行位置锚定:
^ 锚定行首,如:^r 表示已r开头的行。
$ 锚定行尾,如: b$ 表示以b结尾的行
(^$ 表示空白行)
单词位置锚定:
\< \b 锚定单词首部,如 \<a 表示以a开始的单词
\> \b 锚定单词尾部,如 b\> 表示以b结尾的单词
(这里的“单词”需要深入理解)
向后引用:
\1 引用前面第一个()匹配到的内容,作为在当前位置需要匹配的内容。比如前面第一个()匹配到abc,则这里的\1就表示要匹配abc,而不是efg;如果前面第一个()匹配到123,则在\1的位置就要匹配123,而不是456.
\2 引用前面第二个()匹配到的内容
或:
| abc|123 表示匹配123 或者 abc
ab(c|1)23 表示 匹配abc23 或者 ab123
fgrep [option] "字符或字符串" filename
在filename中查找字符或字符串,在这里没有正则表达式的概念,没有元字符的概念。所有字符都是它自己。要找的也是字符自己本身。