标签:文字 多少 空格 int 开头 ESS 引用 保护 文件
^ $ . * [] BRE
^ 以......开头 ^m
$ 以........结尾 m$ 空格$
cat -A 显示全部隐藏特殊符号 每行结尾 都有一个$
^$ 表示空行
grep -n ‘^$‘ zzz.txt
显示文件的空行
cat -An zzz.txt显示所有行 符号
[root@zzz]# grep -vn ‘^$‘ zzz.txt
不显示 空行 显示行号
. 任意一个字符 不会匹配空行 不显示空行
\ 转义符号 把特使符号脱掉马甲打回原形
配合
\n 回车 换行符号
tr
把zzz.txt中的 回车换行替换为空格符号
tr ‘\n‘ " " <zzz.txt
* 前一个字符 出现了0次 0次以上
出现了0次相当与没有
‘0*’ 会把文件的内容全部显示出来
.* 正则表示 连续出现或者所有(.*)有多少吃多少
并且并且并且并且
-o 都变序列了
[root@zzzedu45-zbb zzz]# grep ‘^m.*m$‘ zzz.txt
my blog is http://zzz.blog.51cto.com
[root@zzzedu45-zbb zzz]#
找回以点结尾的行
[root@zzzedu45-zbb zzz]# grep ‘\.$‘ zzz.txt
I teach linux.
not 4900000448.
[root@zzzedu45-zbb zzz]#
#把文件中每一行结尾的空格删除
sed ‘s# $##g‘ zzz.txt|cat - A
sed ‘s# $##g‘ zzz.txt -i
[]相当与是一个符号(每次匹配1个符号) 找出a或者b
grep ‘【abc】’ zzz.txt
#1.找出文件中以m或n开头的行
[root@zzzedu45-lnb zzz]# grep ‘^[mn]‘ zzz.txt
#2.找出文件中以m或n或o开头并且以m或.(点)结尾的行
[root@zzzedu45-lnb zzz]# grep ‘^[mno].*[m.]$‘ zzz.txt
[root@zzzedu45-lnb zzz]# grep ‘\.$‘ zzz.txt
I teach linux.
not 4900000448.
[root@zzzedu45-lnb zzz]# grep ‘[.]$‘ zzz.txt
I teach linux.
not 4900000448.
grep ‘[0-9]’ zzz
grep ‘[0-9a-z]’ zzz
grep ‘[^abv]‘ zzz.txt ^是排除的意思
+
|
()
{}
?
+ 前一个字符连续出现1次或者1次以上
[root@zzzedu45-lnb zzz]# egrep ‘0‘ zzz.txt
my qq is 49000448
not 4900000448.
[root@zzzedu45-lnb zzz]# egrep ‘0+‘ zzz.txt
my qq is 49000448
not 4900000448.
[root@zzzedu45-lnb zzz]# egrep ‘0‘ zzz.txt -o
0
0
0
0
0
0
0
0
[root@zzzedu45-lnb zzz]#
[root@zzzedu45-lnb zzz]# egrep ‘0+‘ zzz.txt -o
000
00000
egrep ‘[a-Z]+‘ zzz.txt -o
把文件中单词显示出来
连续出线的大小写字母
| 或者的意思
[abc]区别 单个字符
a|b|c
() 表示一个整体 反向引用/后向引用
先保护 后引用
egrep ‘oldb(o|e)y‘
sed 支持扩展正则 -r
root@zzzedu45-lnb zzz]# echo ‘<123456>‘
<123456>
[root@zzzedu45-lnb zzz]# echo 123456|sed ‘s#(.*)# \1#g‘
sed: -e expression #1, char 13: invalid reference \1 on `s‘ command‘s RHS
[root@zzzedu45-lnb zzz]# echo 123456|sed -r ‘s#(.*)# \1#g‘
123456
[root@zzzedu45-lnb zzz]# echo 123456|sed -r ‘s#(.*)#<\1>#g‘
<123456>
[root@zzzedu45-lnb zzz]# echo 123456|sed -r ‘s#(..)(..)(..)#\1<\2>\3#g‘
12<34>56
[root@zzzedu45-lnb zzz]# echo 123456
123456
[root@zzzedu45-lnb zzz]# echo ‘12<34>56‘
12<34>56
[root@zzzedu45-lnb zzz]# echo 123456|sed -r ‘s#..(..)..#<\1>#g‘
<34>
[root@zzzedu45-lnb zzz]# echo 123456|sed -r ‘s#(..)(..)(..)#\1<\2>\3#g‘
12<34>56
{}0{n,m}前一个字符至少出现n次 最对出现m次
* >=0
+ >=1
egrep ‘0{1,3}‘ zzz.txt
[root@zzzedu45-lnb zzz]# egrep ‘0{3,4}‘ zzz.txt
my qq is 49000448
not 4900000448.
0000000000000000000000000000000zzz
[root@zzzedu45-lnb zzz]# egrep ‘0{3,4}‘ zzz.txt -o
000
0000
0000
0000
0000
0000
0000
0000
0000
egrep ‘[0-9]{17}[0-9X]‘ id.txt
? 前一个字符出现0次或者1次
正则 处理文字符号 文件过滤文件内容
坏境如下
cat zzz.txt
I am zzz teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://zzz.blog.51cto.com
our size is http://blog.zzzedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but zzz!
标签:文字 多少 空格 int 开头 ESS 引用 保护 文件
原文地址:https://www.cnblogs.com/zdqc/p/9430203.html