grep 主要用于文本中逐行查找
grep 'test' filename.txt //查找filename.txt中含有test的行
也可通过正则表达式查找
grep '正则表达式' filename.txt //查找filename.txt中匹配正则表达式的行
-n : 输出行号
-c: 输出找到匹配字符串的次数
-i: 忽略大小写
-v 参数:反向显示,即显示不匹配正则表达式的行
正则表达式
[] 中括号:只表示一个字符,例如[abc]表示a或b或c
. 点:代表任意字符
* : 代表0个或多个字符 a*表示0个或多个a, '.*'表示任意行,该行可以包含任意字符
+: 代表1个或多个字符 a+表示1个或多个a
^:中括号内表示取反,例:[0-9]表示单个数字,[^0-9]表示非数字;正则表达式内代表行首,例:^abc 表示位于行首的abc
$:表示行尾,例:abc$表示位于行尾的abc, '^$'表示空行
{a,b}表示字符重复次数,例:m/{2,5/}表示出现2到5个m,m/{2,/}表示2到多个m
?:表示0个或1个字符,例:a?表示0个或1个a
sed 主要用于对行的处理
sed 参数 动作
参数
-n 只在屏幕显示经过sed特殊处理过的行
动作
a 在行后追加
c 替换
d 删除
i 在行前插入
p 打印, sed '1,8p' 打印1到8行
s 替换(最常用),sed 's/abc//' 将第一次出现的abc替换成空; sed 's/abc//g' 将该行所有abc替换成空, g 参数是global的意思; abc可换成正则表达式
cut
常用参数
-d 指定分隔符
-f 指定输出哪几个字段
例 cut -d ':' -f 2,3 输出以":"分隔的第二和第三个字段
sort排序
uniq 只显示不重复的行
-c参数:同时显示该行出现的次数