正则表达式与文本搜索
元字符介绍
. 匹配除换行符外的任意单字符
*匹配任意一个跟在它前面的字符 零次或多次
[] 匹配方括号中的字符类中的任意一个
^匹配开头
$匹配结尾
转义后面的特殊字符
[hH]ello
pass.*
pass.*$
以#开头 :^#
以#结尾 : #$
grep 行检索,输出匹配行:
根据完整单词查找:grep password anaconda-ks.cfg
模糊查询:grep pass....$ anaconda-ks.cfg
查找行中包含 . : grep "." anaconda-ks.cfg
扩展元字符
+ 匹配前面的正则表达式一次或多次
?匹配前面的正则表达式零次或一次
| 匹配它前面或者后面的正则表达式
文件查找命令
find 路径 查找条件 [补充条件]
查找:find /etc -regex .*wd
找到并操作:find *txt -exec rm -v {} ;
找到此文件中包含pass的行并以空格做剪切取第一个字段:
grep pass /etc/anaconda-ks.cfg | cut -d " " -f 1
统计shell:
cut -d ":" -f7 /etc/passwd | sort | uniq -c
统计shell 并反向排序:
cut -d ":" -f7 /etc/passwd | sort | uniq -c | sort -r
sed
- vim 与 sed 、awk 区别:
- vim 全文本编辑器,交互式
- sed 、awk 行编辑器,非交互式
2. sed :一般对文本内容做替换
3. awk : 一般对文本内容进行统计,按需要的格式进行输出
4. sed 替换:将文件以行为单位读取到内存(模式空