1.grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的 行 打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
Tips : grep -E = egrep(扩展的正则表达式)
文件内容:
##grep 格式##
grep 匹配条件 处理文件
grep root passwd 过滤root关键字
grep ^root passwd 以root开头
grep root$ passwd 以root结尾
grep -i root passwd 忽略大小写
grep -E "\<root" passwd root字符之前不能有字符
grep -E "root\>" passwd root字符之后不能有字符
特殊符号都是扩展的正则表达式中的,所以应该加上-E参数
roothaha 就不见了。
grep -数字 显示过滤行以及上面几行和下面几行,A为文件名。
grep -n 显示匹配的行所在行号
grep -A 显示过滤行以及下面几行
grep -B 显示过滤行以及上面几行
grep -v 反向过滤
grep字符数量匹配规则
^westos 以westos开头
westos$ 以westos结尾
w....s w开头s结尾中间4个任意字符
.....s s结尾前面5个任意字符
* 字符出现0到任意次
? 0到1次
+ 1到任意次
{n} n次
{m,n} m到n次
{0,n} 0-n次
{,n} 0-n次
{m,} 最少m次
(lee){2} lee字符串出现2次,lee要用括号括起来
2.sed
sed是stream editor的缩写,一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。
命令格式:
sed 参数 命令 处理对象
##-b显示行号,可以看出只有第五行的内容被打印出来了。
sed 参数 处理对象 -f 处理规则文件
对字符的处理
-n ##静默模式,只显示进行处理的那一行。
-e #多条策略。
p ##打印,显示print
sed -n 5p westos 显示第五行
sed -n 3,5p westos 显示3到5行
sed -ne "3p;5p" westos 显示3和5行
sed -ne 1,5p westos 1-5行
sed -ne '5,$p' westos 5到最后以行
sed -n '/^#/p' fstab 显示以#开头的行
d 删除
sed 5d westos 删除第五行
sed '/^#/d' fstab 把 # 开头的行删除
sed '/^UUID/!d' fstab 除了UUID以外的行都删除
sed -e '5,$d' westos 第五行删到最后
a 添加
sed -e '$a hello world' westos
sed -e '$a hello\nworld' westos \n换行
sed -e '/^#/a hello world' fstab
c 替换
sed -e '/^#/c hello world' fstab 以'#'开头的行都替换为 helloworld
sed '5c hello world' westos
w 把符合的行写到指定文件中
sed '/^UUID/w westofile' westos 把westos中UUID开头的行写入westosfile中
i 插入
sed '5ihello westos' westos
a 是插入到下面,i 是插入到上面
r 整合文件
sed '5r hah' westos 把hah文件的内容整合到westos文件第五行下面
sed 字符替换
sed 's/: /###/g' westos 把全文的: 替换为'###'
sed 's/: /###/' westos 仅替换第一列
sed '1,5s/: /###/g' westos 1到5行
sed '1s/: /###/g' westos 替换第一行
sed '1s/: /###/g;5s/: /###/g' westos 替换第一行和第五行
sed '/lp/,/shutdown/s/: /###/g' westos 替换lp 和shutdown之间的:
sed 's/\//####/g' westos 替换/为###
sed 's@/@####@g' westos @的作用和/一样
sed 's@/@####@g' -i westos 把sed处理的内容保存到westos文件中
可见处理的内容已经更改到了源文件中。