linux-3grep sed
正则表达式:
是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能;
元字符:不表示其字面意义,而用于额外功能性描述
基本正则表达式:grep
参数
-n :显示行号
-o :只显示匹配的内容
-q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
-l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc
-A :如果匹配成功,则将匹配行及其后n行一起打印出来
-B :如果匹配成功,则将匹配行及其前n行一起打印出来
-C :如果匹配成功,则将匹配行及其前后n行一起打印出来
-c :如果匹配成功,则将匹配到的行数打印出来
-E :等于egrep,扩展
-i :忽略大小写
-v :取反,不匹配
-w:匹配单词
字符匹配:
.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[0-9], [[:digit:]] 任何数字
[a-z], [[:lower:]] 任何小写字母
[A-Z], [[:upper:]] 任何大写字母
[[:alpha:]] 任何字母
[[:alnum:]] 任何字母和数字
[[:space:]] 任何白字符
[[:punct:]] 任何标点符号
[[:xdigit:]] 任何16进制的数字
[^] 对字符组内的每个字符取反
^[^] 非字符组内的字符开头的行
次数匹配元字符:用于实现指定其前面的字符所能够出现的次数
*: 任意长度,它前面的字符可以出现任意次
.*:任意长度的任意字符
\?: 0次或1次,它前面的字符是可有可无的
\{m\}: m次,它前的字符要出现m次
\{m,n\}: 至少m次,至多n次
\{m,\}:至少m次
\{0,n\}: 至多n次
位置锚定:
^: 行首锚定;
$: 行尾锚定:
^$: 空白行
单词一般以空格或特殊字符做分隔,连续的字符串被当做单词:
\<: 词首 \<char
\>: 词尾 char\>
sed
sed 流编辑器
-n: 静默模式,不再默认显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f 在处理输入时,将file中指定的命令添加到运行的命令中
-r: 表示使用扩展正则表达式
函数
d 删除 sed '3d' 删除第3行
p 打印匹配的行 一般和 -n 参数连用,以屏蔽默认输出
c 替换 sed '3c 111111111' 第3行替换成11111111
a 追加 在第3行后插入一行
i 前插
s 字符串替换 s/old/new/

浙公网安备 33010602011771号