正则 匹配以字母a开头的单词. \ba\w*\b 匹配刚好6个字符的单词 \b\w{6}\b 匹配1个或更多连续数字 \d+ 5位到12位QQ号 ^\d{5,12}$ 匹配以hi单词后面有lily的单词 \bhi\b.*\blily\b
以0开头,后面三个数字,一个连字号-,最后8个数字 0112-1234567798 0\d{3}-\d{8}
grep定义:根据用户指定的模式对目标文本进行过滤,显示被模式匹配到的行
-v 显示不被pattern匹配到的行 -i 忽略字符大小写 -n 显示匹配的行号 -c统计匹配的行数 -o 仅显示匹配到的字符串 -E 使用ERE,相当于egrep 举例 查找以a开头的行 grep ^a test.txt 查找以b结尾的行 grep b$ test.txt 查找文件的内容包含root的行数 grep -n root test.txt 查找文件的内容不包含root的行 grep -nv root test.txt
sed:流编辑器,一次处理一行内容 a:新增 sed -e ‘4 a newline’ c:取代 sed -e ‘2,5c No 2-5 number’ d:删除 sed -e ‘2,5d’ i:插入. sed -e ‘2i newline’ p:打印 sed -n ‘/root/p’ s:取代 sed -e ‘s/old/new/g’
查看帮助 man sed sed -h 在第二行后加上newline sed ‘2a newline’ test.txt 在第二行前加上newline sed ‘2i newline’ test.txt 全局替换 sed ‘s/root/hello/g’ test.txt
直接修改文件内容 sed -i ‘s/root/hello/g’ test.txt
awk定义: 把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行后续处理
搜索/etc/password有root关键字的所有行,并显示对应的shell awk -F:‘/root/{print $0}’ /etc/password 打印/etc/password的第二行信息 awk -F: ‘NR==2{print $0}’ /etc/password
使用begin加入标题 awk ‘BEGIN {print “BEGIN”,“BEGIN”} {print $1,$2}’ /etc/password 自定义分隔符 echo “111 222|333 444|555 666”|awk 'BEGIN{RS="|"}{print $0}
|