此处命名为正则表达式可能不太恰当,大都是一些可能是shell脚本中用到的命令,暂时这样称呼,当然这些命令确实和正则表达式关系密切。
1.grep
grep -n '^a’ filename #-n 打印所过滤出行的行号 过滤以某字符为开头的行
grep -n '^[a-z]' filename 过滤以小写字母为开的行
grep '^$' filename 打印为空行的行号
grep -n '\.$' 打印以小数点为结尾的行
ps: $代表结尾
^代表开头
grep -v '^$' filename 打印不为空的行
-v 反义,意为不包含某参数的行
grep -v 'set' filename 打印文件中不包含set的行
grep 常用参数:
-c 只输出匹配行的计数
-i 不区分大小写(只适用于单字符)
-n 显示匹配行及行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
2.sed [d删除 c替换 s 搜索替换]
sed 'n1,n2 d'
sed -i s/a/b/g filename 替换后并写入源文件
3.awk是个非常牛逼的程序
awk 命令1,命令2,命令3
awk '{print NR,NF,$1,$NF,}' file 显示文件file的当前记录号、域数和每一行的第一个和最后一个域。
FS 分隔符
NR 当前为第几行
FN 当前有几个字段
awk 默认的分隔符是一个空格
4.last 这个月的登陆信息
5.cut
-d -f 结合作用,-d后接分隔符,-f后接数字。意为打印出以-d(后接内容)为分隔符分隔成的第几部分
如: cut -d '_' -f 3 string_line 即为打印出以_为分隔符的第3部分,若没有第三部分则打印出为空
-c 以字符为单位取出固定范围的字符
cut -c 20-25 即取出这一行第20到第25个字符
6.uniq
过滤重复内容
uniq -c 在列边显示该行出现的次数
7.sort (排序)
-f 忽略大小写
-b 忽略空格
-r 反向排序
-u 滤重
-t 分隔符,默认为tab
-k 按哪个字段来排序
8.split -bl prefix(文件名头)
-b 按大小拆分 后接文件太小 ( 400b/400K/400m等)
-l 按行拆分
9.print
PS:以上命令可通过管道连接使用,以完成一些文本的处理