正则表达式:
元字符:
.代表单个任意字符,也可以是一个汉字
\:转义符
():分组\(\)
[a-z0-9A-Z] 匹配范围内任意单个字符
[a]
表示次数:
*.匹配前面的字符任意次,0次也算
.*匹配任意长度的任意字符,不包括0次
\?匹配前面的字符0次或者1次
\ +匹配前面的字符至少一次 >=1
\ {n\ }匹配前面的字符=n次
\ {n,m\ }匹配前面的字符最少n次,最多m次
\ {,n\ }匹配前面的字符最多n次,0次
\ {n,\ }匹配前面的字符至少n次
位置锚定:
^行首锚定,表示以什么为开头
$行尾锚定,表示以什么为结尾
^$匹配的是空行
^root&:匹配整行,而且一行只能有这一个字符串
\ < \b 词首锚定,用于单词模式的左侧(连续的字母,数字,下划线都算在单词内部)
\ > \b 词尾锚定,用于单词模式的右侧
\broot\b 匹配整个单词,而不是匹配行。
分组和逻辑或
分组:()
逻辑或:\ |
扩展正则表达式:
*
?
{n}
{n,m}
{n,}
{,n}
|
grep -E
sed -r
egrep
sed:增和改,查没有grep好用
免交互删除文件内容
删除空行
文本的三剑客:grep 查
sed 免交互
按行进行处理。
sed是一种流编辑器。
除非确认操作,否则数据一概不变,在缓冲区的数据,展示结束后,会被立刻销毁。
-e 指定命令来处理输入的文本文件,只有一个操作命令,-e可以不写,一般都是执行多个操作命令。
-f 用指定文件中的脚本来对另一个文件进行处理
-i 将会直接生效,慎用
-n 屏蔽默认输出,只显示一条结果
操作命令:
s:替换
d:删除内容,删除指定行
a:新增,在当前行的下面插入一行指定内容
i:插入,在选定行上面插入一行内容
c:替换整行
y:单字符转换,转换前后的字符长度,必须保持一致
p:打印
r:扩展正则表达式
sed的主要内容是对文本内容的增删改查