查看“Linux-2020-spring-4-8”的源代码
←
Linux-2020-spring-4-8
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
== 复习 == *通配符 *重定向 *命令行参数 == find 命令 == * 从目录树中搜索文件(默认是递归查找) * -name选项默认支持通配符 $ find . -name '*.txt' $ find / -name 'find' # 文件的名字是find Permission denied(报错) 为了不再屏幕上显示错误信息?重定向,或者以root权限来做 $ find / -name 'find' 2> x.txt $ find / -name 'find' 2> /dev/null # 黑洞输出设备 $ sudo find / -name '??????????' :查找文件名字为十个字符的文件,以root的名义 == egrep命令 == * grep:查找并输出可以匹配指定模式的所有行(我猜对应的英文缩写:get RE pattern;另一个解读是global search RE and print out the lines) egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更简单,不用频繁使用转义符\backslash。 * 一些例子 $egrep 'int' main.c $egrep -n 'int' # ctrl+d或记为^D,表示输入结束,-n表示同时输出行号 $egrep -n '[ijklm]nt' $egrep -n '[^0-9]nt' $egrep -n '[0-9]nt' $egrep -n '.nt' $egrep -n 'a*bc' $egrep -n 'a*?bc' $egrep -n 'a?bc' $egrep -n '[0-9]*bc' $egrep -n 'abc|bcd' $egrep -n '(abc|bcd)[0-9]+' $egrep -n '^(abc|bcd)' $egrep -n '^(abc|bcd)$' * egrep还有一些选项很有用,如 -o -A -B ==正则表达式 regular expression== 推荐大家采用我的最新讲义来系统学习RE,目前未定稿,欢迎大家提出问题和建议:链接为[[File:Linux-RE.pdf]] *定义Definition:RE是满足正则语言语法的一个字符串,作为一个抽象的模式,用以匹配一个、多个甚至无穷多个实际的字符串。 例子都在上面。 * literal字面意思 * [ ] 字符集, [^ ]补集' * 自定义字符集 \w [ [:alphanum:]] \d [ [:digit:]] \s * . 任意一个字符,不能匹配\n\r * 重复修饰符(默认为贪心greedy匹配最长的字符串) * 表示前面的字符匹配0次到n次 ? 表示可取0个/1个 + 重复一次到无穷多次 {3} 重复3次 {3,5} 3次到5次 {3,} 3次到无穷 * 分组group () * | 或Alternation * 定位符anchoring ^表示行首 $表示行尾 \< \>表示单词的首/尾 \b表示单词边界 \B表示非单词边界 * 通配符和正则表达式的对应 * ? .* . == 一些讨论 == * 正则语言所处的位置 正则语言:正则表达式所能表达的所有字符串的集合:OR符合正则语言语法的所有RE的集合(这两个意思是不同的,需要琢磨一下,我倾向于后者) 上下文无关语言:context-free language 程序语言:program language 自然语言:natural language == 课堂讨论 == 重复修饰符:表示前一个单元(作为整体、不可分割)的重复次数 优先级:分组(括号)> 重复 > 拼接 > 或(|) == 补充学习 == find 根据文件的访问(修改)时间? 根据文件大小?
返回至
Linux-2020-spring-4-8
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
新闻
成员介绍
研究组
科研项目
发表论文
在线演示
工具
链入页面
相关更改
特殊页面
页面信息