linux文本处理工具
1.grep
1.字符的过滤grep
grep命令是linux下的文本处理工具,这些命令都是用于对一个文件和文本执行重复搜索的工具。我们可以通过grep命令指定特定的搜索条件来搜索文件及其内容以获取有用的信息。 grep时全局搜索,其抓取数据是贪婪模式,即不会漏掉过滤内容,但准确性也会降低
2.grep的基础搜索文本指令
egrep = grep -E
grep -e ”root|nologin“ passwd 搜索含有root和nllogin的行 = grep -e root -e nologin passwd (同时过滤两个目标)
grep -i root passwd 忽略大小写
grep -E “<root” passwd 搜索字符不能有前缀
grep -E “root>” passwd 搜索字符不能有后缀
grep -E “<root>” passwd 搜索字符前后都不能有后缀
grep -n westos passwd 显示匹配的行所在行号
grep -5 westos passwd 显示过滤行及前后5行将会显示
grep -B5 westos passwd 显示含有关键字的行及以上5行
grep -A5 westos passwd 显示含有关键字的行及以下5行
grep -v root passwd 显示不含有root的过滤行(反选)
3.grep命令字符数量匹配规则
grep ^westos westos 以westos开头
grep westos$ westos 以westos结尾
grep w.s westos ws之间有任意一个字符的
grep w…s westos ws之间有任意三个字符的
grep -E “w.*s“ westos 表示字符出现了任意次
grep -E "was" westos a出现了任意次
grep -E “wa{2}s” westos a出现了两次
grep -E “wa?s” westos a出现了0-1次
grep -E ‘w.+s’ westos 含有任意字符出现一次以上
grep -E ‘w.{3,}s’ westos 含有最少三个任意字符
grep -E ‘w.{,3}s’ westos 最多三个
grep -E ‘w.{1,3}s’ westos 1-3个
grep -E ‘w(ab){3,}s’ westos 含有字符串最少3个的所在行
练习:
使用脚本把主机中可以su切换的用户过滤出来
#!/bin/bash
grep -E "bash$|sh$" /etc/passwd | cut -d : -f 1
2.sed 字符替换
不输出模式空间的内容,只输出处理过的内容
p 显示
sed -n 5p passwd 显示第五行内容
cat -b passwd | sed -n 3,5p 显示3-5行
cat -b passwd | sed -n ‘3p;5p’ 显示3行和5行 (-b 显示输出行号)
cat -b passwd | sed -n ‘/^root/p’ 显示root开头的行
sed -n ‘bash / p ′ p a s s w d 显 示 以 b a s h 结 尾 的 行 s e