Linux正则表达式
来源:互联网 发布:嘉兴行知小学排名 编辑:程序博客网 时间:2024/05/24 04:30
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相同,只不过在操作前要询用户
#-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命令为参数过滤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 (不建议)
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:撤销最近#次操作
0 0
- Linux正则表达式-表达式
- Linux正则表达式-编写正则表达式
- linux 正则表达式
- 正则表达式(linux/C++)
- Linux 正则表达式语法
- Linux之正则表达式
- linux c 正则表达式
- linux c 正则表达式
- linux C正则表达式
- linux c 正则表达式
- Linux正则表达式
- linux 操作正则表达式
- Linux下正则表达式
- linux 正则表达式
- linux正则表达式指南
- Linux shell: 正则表达式
- linux的正则表达式
- 正则表达式 linux shell
- 一个工作一年半的程序员的自述(一)
- JavaScript中的块级作用域、私有变量与模块模式
- 求解任意两日期间相隔的天数
- 深度学习指南:基于Ubuntu从头开始搭建环境
- C++ 用利用函数求 m,n的最大公约数
- Linux正则表达式
- 【设计模式】代理模式
- android中listView监听中获取监听到的内容
- ACdream-1030-Matching
- linux的终端
- Machine Learning in Action 学习笔记-(3)决策树
- UI更新的方法和在非UI线程里面,怎么更新UI信息。细细的
- 黑客与画家---设计者的品味
- JAVA学习笔记--多线程(一)