Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86207
  • 博文数量: 29
  • 博客积分: 815
  • 博客等级: 军士长
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-01 12:42
文章分类

全部博文(29)

文章存档

2016年(4)

2012年(24)

2011年(1)

分类: LINUX

2012-03-06 14:01:31

正则表达式分为基础表达式和扩展的正则表达式
 
基础表达式
grep  [-acinv] '字符串' filename 
-a 二进制文件中以文本文件形式搜索(经常碰到grep提示错误 加上这个参数)
-c 计算次数  -i 忽略大小写   -n 输出行号 -v 反向搜索,没有数据的行显示出来
组合用法: 反向选择  grep -n '[^g]o' test.txt   (o前面不带g)
组合可用[^0-9] [a-z] [A-Z]全部则是[0-9a-zA-Z] 
^加上字符或字符串代表此字符或字符串在开头位置 例:开头不是英文字符 ^[^a-zA-Z]
^符号在【】之内代表“反向选择”,在外代表定位在行首
-n  '\.$'  行尾为小数点.      -n '^$'  空白行
 
任意字符.与通配符*
.表示任意一个字符   *表示任意0或多个字符(重复0个或多个前面的任意一个字符)
0*表示拥有空字符或一个0以上字符  00*才表示只是一个0加上任意字符
.*表示零个或多个任意字符  
 
限定连续重复字符范围{}   与转义符 \ 合用
grep -n '0\{2\}' test.txt   查找2个o的字符串
grep -n '0\{2,5\}' test.txt  查找2-5个0的字符串
 
正则表达式中的特殊字符  和 一般命令行输入命令的通配符  并不相同
例: 命令中的  ls -alh   t*   =  ls -alh|grep -n 't.*'
 
grep 支持基础正则表达式   egrep= grep -E  支持扩展正则表达式
 
扩展正则表达式的特殊符号
+ 重复“1个或1个以上的字符   egrep -n 'go+d' test.txt  (god  good goood ....)
?  零或一个字符      egrep -n  'g?d'   test.txt    (gd god)
| 或者or   egrep -n 'gd|good'  test.txt    (找出gd或者good)
()  里面包含字符串   egre -n 'g(a|oo)d' test.txt  (找出gad或good)
反向选择   [^a-z]  而不是 [!a-z]
 
格式化显示 printf "格式"   内容
 格式:  \a 警告声音输出  \b (backspace)退格键  \f 清屏 \n输出新的一行   \t tab 
\v table   \xNN  NN为两位数的数字可转换为字符     %ns字符串  s=string  %ni 整数数字 i=integer %N.nf 小数 f=floating     %10.2f  整数10位  小数2位
 
sed /awk   会有专门的文章
 
文件比较
diff  [-bBi]  from-file to-file  from-file为原始文件  to-file为比较文件
-b 忽略一行的空白差异 -B忽略空白行的差异  -i 忽略大小写
d delete   c create
 
内容更新 patch
patch -pN < patch_file  -P 取消N层目录
 
文件打印 pr
pr /home/sysadm/test.txt
 
最后附一个自己最常用的表达式
find ./ -mtime +90 -name "*.html*" -exec rm -rf {} \;
再来一个杀oracle数据库死锁的
kill -9 `ps -ef |grep "oraclenewplt (LOCAL=NO)" |awk -F ' ' '{print $2}'`
 
 
 
 
 
 
 
 
 
阅读(1157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~