Linux正则表达式
grep:文本过滤工具,能够实现根据指定的模式patten逐行搜索文件内容并显示匹配到的行,默认使用基本正则表达式
    -i:忽略大小写   -o:只显示匹配的串
    -v:显示不匹配的  -E:使用扩展正则,或直接使用egrep

补充:sed以行为单位编辑
awk
    一行一行分析,awk能细分,将一行分为多个字段,以字段为单位进行处理,默认分隔符为空格,支持C语法,可以有分支条件判断,循环语句。

find
find命令在目录结构中搜索文件,并执行指定的操作。

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

#-print 将查找到的文件输出到标准输出
#-exec   command   {} \;      —–将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
可以根据文件各种属性进行查找,如文件名、执行权限、属主、属组、时间等
例:find . -name .svn | xargs rm -rf
find常与xargs、grep结合实现复杂查找 
要在/usr/linux中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名,有以下几种方法实现
    find /usr/linux -name "*.h" | xargs grep SYSCALL_VECTOR
    grep SYSCALL_VECTOR /usr/linux/*.h | cut -d’:’ -f1 | uniq > filename
    find /usr/linux -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print (不建议)
注:xargs命令为参数过滤

 
RE:正则表达式
basic RE基本,extended RE扩展
1、基本
字符
    .  任意单个
   []指定范围内的单个
    [^]指定范围外的单个
次数匹配(贪婪模式)
    *:  0,1或多次
    ?:0,1次
   \{m,n\}:至少m至多n次
    \{m,\}:至少m
    \{0,n\}:至多n
    \{m\}:m次
锚定符:定位
    单词锚定:\< 或\b锚定词首       
                         \> 或\b 锚定词尾        
                  所以,定位一个单词\<单词\>
                       ^  行首   $ 行尾
分组:\(\)  另外
          向后引用:\1表示引用第一个左括号中内容  \2表示第二个    等等

2、扩展与基本区别
次数匹配:
     +:其前字符至少一次
   {m,n}:不需用反斜线
分组:()
或者:|:or,指的是整个左边或者右边

3.文本编辑器
行编辑器:sed  ,Stream EDitor
全屏幕编辑器:nano ,emacs ,vi=visual interface ,vim=vi improved

vi: 模式化编辑器
    编辑模式:命令,如dd表示删除
    输入模式:内容,如dd表示dd字符本身
    末行模式:!shell command   可在不关闭vi下执行shell命令



删除:d后可结合跳转命令
撤销:u:撤销上次操作
          #u:撤销最近#次操作




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/paomojj1/article/details/51559671
文章标签: Linux 正则表达式
个人分类: Linux
想对作者说点什么? 我来说一句

Linux正则表达式技术指南

2010年01月01日 3KB 下载

linux 正则表达式

2011年08月18日 3.82MB 下载

文件路径的正则表达式

2015年02月27日 1KB 下载

没有更多推荐了,返回首页

不良信息举报

Linux正则表达式

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭