正则表达式,grep,sed,
答案详见:http://www.cnblogs.com/linhaifeng/p/6596660.html
作业一:整理正则表达式博客
^ # 行首定位
$ # 行尾定位
. # 匹配除换行符以外的任意字符
* # 匹配0或多个重复字符
+ # 重复一次或更多次
? # 重复零次或一次
? # 结束贪婪因子 .*? 表示最小匹配
[] # 匹配一组中任意一个字符
[^] # 匹配不在指定组内的字符
\ # 用来转义元字符
< # 词首定位符(支持vi和grep) <love> # 词尾定位符(支持vi和grep) love>
x\{m\} # 重复出现m次
x\{m,\} # 重复出现至少m次
x\{m,n\} # 重复出现至少m次不超过n次
X? # 匹配出现零次或一次的大写字母 X
X+ # 匹配一个或多个字母 X
() # 括号内的字符为一组
(ab|de)+ # 匹配一连串的(最少一个) abc 或 def;abc 和 def 将匹配
[[:alpha:]] # 代表所有字母不论大小写
[[:lower:]] # 表示小写字母
[[:upper:]] # 表示大写字母
[[:digit:]] # 表示数字字符
[[:digit:][:lower:]] # 表示数字字符加小写字母
元字符
\d # 匹配任意一位数字
\D # 匹配任意单个非数字字符
\w # 匹配任意单个字母数字下划线字符,同义词是 [:alnum:]
\W # 匹配非数字型的字符
字符类:空白字符
\s # 匹配任意的空白符
\S # 匹配非空白字符
\b # 匹配单词的开始或结束
\n # 匹配换行符
\r # 匹配回车符
\t # 匹配制表符
\b # 匹配退格符
\0 # 匹配空值字符
字符类:锚定字符
\b # 匹配字边界(不在[]中时)
\B # 匹配非字边界
\A # 匹配字符串开头
\Z # 匹配字符串或行的末尾
\z # 只匹配字符串末尾
\G # 匹配前一次m //g离开之处
捕获
(exp) # 匹配exp,并捕获文本到自动命名的组里
(?<name>exp) # 匹配exp,并捕获文本到名称为name的组里,也可以写成(? 'name' exp)
(?:exp) # 匹配exp,不捕获匹配的文本,也不给此分组分配组号
零宽断言
(?=exp) # 匹配exp前面的位置
(?<=exp) # 匹配exp后面的位置
(?!exp) # 匹配后面跟的不是exp的位置
(?<!--exp) # 匹配前面不是exp的位置
(?#comment) # 注释不对正则表达式的处理产生任何影响,用于注释
特殊字符
http: //en.wikipedia.org/wiki/Ascii_table
^H \010 \b
^M \015 \r
匹配特殊字符: ctrl+V ctrl不放在按H或M 即可输出^H,用于匹配
--></name></love>
|
作业二:grep作业(正则表达式及字符处理)
目标文件/etc/passwd,使用grep命令或egrep
1.显示出所有含有root的行:
grep "root" /etc/passwd
2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:
grep -C 2 "bash" /etc/passwd
3. 显示出有多少行含有nologin。
[root@python_lb yan]# grep -c "nologin" /etc/passwd
4.显示出那些行含有root,并将行号一块输出。
[root@python_lb yan]# grep -n "root" /etc/passwd
5.显示出文件中
6.新建用户
abominable
abominate
anomie
atomize
编写正则表达式,将他们匹配出来
[root@python_lb yan]# egrep '^a[a-z]+e' passwd
7.建四个用户
Alex213sb
Wpq2222b
yH438PIG
egon666
egon
过滤出用户名组成是字母+数字+字母的行
[root@python_lb yan]# grep -Eni '^[a-Z]+[0-9]+[a-Z]+' passwd
53:Alex213sb:x:1005:1005::/home/Alex213sb:/bin/bash
54:Wpq2222b:x:1006:1006::/home/Wpq2222b:/bin/bash
55:yH438PIG:x:1007:1007::/home/yH438PIG:/bin/bash
8.显示出/etc目录下所有包含root的文件名
[root@python_lb yan]# mkdir /etc/root
[root@python_lb yan]# mkdir /etc/1root
[root@python_lb yan]# mkdir /etc/root2
[root@python_lb yan]# ls /etc/|grep root
[root@python_lb yan]# ls /etc/*root*
9. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行
[root@python_lb yan]# grep -v "^$" /etc/ssh/sshd_config|grep -v "^#"
作业三:Sed作业:以/etc/passwd文件为模板
1,删除文件每行的第一个字符。
[root@python_lb yan]# sed -r 's/^([a-Z0-9-])([a-Z0-9-]+)/\2/g' passwd
2,删除文件每行的第二个字符。
[root@python_lb yan]# sed -r 's/^([a-Z0-9-])([a-Z0-9-])([a-Z0-9-]+)/\1\3/g' passwd
3,删除文件每行的最后一个字符。
[root@python_lb yan]# sed -r 's/([a-Z]+)[a-Z]$/\1/g' passwd
4,删除文件每行的倒数第二个字符。
[root@python_lb yan]# sed -r 's/^(.*)(.)(.)$/\1\3/g' passwd
5,删除文件每行的第二个单词。
[root@python_lb yan]# sed -r 's/^([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)/\1\2\4/g' passwd
[root@python_lb yan]# sed -r 's/^([a-Z0-9-]+)([^a-Z]+)([a-Z]+)([^a-Z]+)/\1\2\4/g' passwd
6,删除文件每行的倒数第二个单词。
[root@python_lb yan]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)$/\2\3/g' passwd
7,删除文件每行的最后一个单词。
[root@python_lb yan]# sed -r 's/([^a-Z]+)([a-Z]+)$/\1/g' passwd
8,交换每行的第一个字符和第二个字符。
[root@python_lb yan]# sed -r 's/(^[a-Z])([a-Z])/\2\1/g' passwd
9,交换每行的第一个字符和第二个单词。
[root@python_lb yan]# sed -r 's/(^[a-Z])([a-Z0-9-]+)([^a-Z]+)([a-Z]+)/\4\2\3\1/g' passwd
10,交换每行的第一个单词和最后一个单词。
sed -r
's/([a-Z]+)(.*)([^a-Z]+)([a-Z]+)$/\4\2\3\1/'
passwd
11,删除一个文件中所有的数字。
sed -r
'/[0-9]+//g'
passwd
12,删除每行开头的所有空格。
sed -r
's/^ *//g'
passwd
13,用制表符替换文件中出现的所有空格。
sed -r
's/ /\t/g'
/etc/passwd
14,把所有大写字母用括号()括起来。
sed -r
's/[A-Z]/(&)/g'
/etc/passwd
15,打印每行3次。
sed
'p;p'
/etc/passwd
16,只显示每行的第一个单词。
sed
'1~2d'
/etc/passwd
17,打印每行的第一个单词和第三个单词。
18,用命令获取格式为 mm/yy/dd 的日期格式,结合管道,将其换成 mm;yy;dd格式
转载于:https://www.cnblogs.com/Baby-Lady/p/6600054.html
正则表达式,grep,sed,相关推荐
- 正则表达式与扩展正则表达式(grep, sed, awk)
Linux中用来在文件中搜索字符串的命令,如grep, sed, awk等命令支持正则表达式与扩展正则表达式. 1. 基础正则表达式 符号 解释 示例 * 匹配0次或多次 b.*t . 匹配任意字符 ...
- 正则表达式grep sed awk总结
1.grep命令总结 [root@cacti ~]# cat zh888.txt //查看zh888.txt内容 123 456 abc def def [root@cacti ~]# grep - ...
- 正则表达式中grep,sed的用法(包括基本的正则表达式和扩展的正则表达式)
一 正则表达式 Basic REGEXP:基本正则表达式 Extended REGEXP:扩展正则表达式 (正则表达式是使得计算机变成智能化的重要途径) 1.1 基本正则表达式 . : 表示匹配任 ...
- (管道| / 重定向 / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
原文连接:http://www.cnblogs.com/alwayswyy/p/5191137.html 本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下 一. ...
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
一.正则表达式 1.1国际字符模式匹配或匹配模式的类名 [:alnum:] : 0-9,A-Z,a-z [:alpha:] : A-Z,a-z [:upper:] : A-Z [:lower:] : ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- 【Linux】 字符串和文本处理工具 grep sed awk
Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...
- grep, sed, awk
这几个工具是shell中非常好用的文本流处理工具,可以进行查找,编辑或者分析等工作,它们都支持正则表达式,也支持使用shell内置的变量 grep grep是一个字符串比较工具,用于从文件中提取满足条 ...
- linux grep sed awk
linux 文本编辑命令grep sed awk(转) grep grep (global search regular expression(RE) and print out the li ...
- linux 文本编辑命令grep sed awk
grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
最新文章
- Java矩形区域食物链_AcWing 240. 食物链(JAVA)
- 阿姨帮万勇:O2O产品的颠覆与布局,阿姨帮未来发展战略独家披露
- 百度安全发布PaddleSleeve 面向产业实践开启AI模型安全与隐私探索
- 深度学习 《梯度消失和梯度爆炸》
- matlab 一元线性微分,怎样用matlab求一元线性函数极值
- python时间序列库_python Pandas库基础分析之时间序列的处理详解
- 删除任务管理器中的启动项
- c++写入二进制、TXT文件,读取二进制、TXT文件,切分字符串(入数组)
- android qq robot,KG Robot(QQ机器人手机版)
- Android Adb命令恢复出厂设置
- 2022-2027年中国OLED显示面板行业发展监测及投资战略研究报告
- 注册表Regedit实现右键管理员权限运行notepad++打开文件
- 筛选尚未注册的域名查询工具
- 2_linux-常用命令-实例
- 供应商网店货源哪里找?直播带货靠谱货源(电商教程)
- 消除小黑点html,word黑点怎么去掉,Word文档项目编号前有个小黑点
- 决策树 基于python实现ID3,C4.5,CART算法
- 快速学会如何在linux上用户环境变量和系统环境变量
- 一文带你了解SLB、F5、Nginx负载均衡
- 计算机英语第五版翻译,计算机专业英语教程第5版翻译
热门文章
- 分布式一致性与共识算法
- ContentProvider源码分析(原)
- 数据存储之 SQLite 数据库操作(一)
- Hyperledger Fabric1.0架构概览
- Gradle不匹配报错的终极大招(gradle插件版本和gradle版本对应关系)
- 计算机桌面颜色如何设置标准,电脑调整桌面颜色设置_电脑桌面颜色设置
- sir跟seir模型有啥区别_H3C B5mini拆机,看一下跟B5有啥区别
- 如何进入python程序代码编辑环境_Python怎么打开代码编辑器 来学习吧
- android 单例存储,Android 单例在内存中存储数据
- 无法访问本地ip_当金万维异速联无法访问金蝶软件怎么办?