1. 常规匹配
一串不包含特殊字符的正则表达式匹配它自己
cat 目标文档 | grep 需查找的字符
2. 常用特殊字符
2.1 特殊字符:^
^
匹配一行的开头
grep ^a
会匹配出所有a
开头的内容
2.2 特殊字符:$
$
匹配一行的结束
grep a$
会匹配出所有以a
结尾的内容^$
会匹配出所有的空行
2.3 特殊字符:.
.
匹配一个任意的字符
grep x..y
会匹配出xaby xvcy
等的所有行
2.4 特殊字符:*
*
不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次
grep x*y
会匹配出xy xxy xxxy
等的所有行^a.*b$
会匹配出以a
开头,以b
结束的所有行,ab
之间的内容为.*
,表示随便是什么内容都可以
2.5 字符区间(中括号):[]
[]
表示匹配某个范围内的一个字符
格式 | 功能 |
---|---|
[6,8] | 匹配 6 或者 8 |
[0-9] | 匹配一个 0-9 的数字 |
[0,9]* | 匹配任意长度的数字字符串 |
[a-z] | 匹配一个 a-z 之间的字符 |
[a-z]* | -匹配任意长度的字母字符串 |
[a-c, e-f] | 匹配 a-c 或者 e-f 之间的任意字符 |
2.6 特殊字符:\
\
表示转义,和特殊字符组合使用,比如grep '\$'
就可以匹配出带有$
的内容了
注意需要使用单引号将表达式引起来
3. 文本处理工具
3.1 cut
通过cut [选项参数] filename
的方式就可以对目标文件进行特定裁剪
格式 | 功能 |
---|---|
-f | 列号,提取第几列 |
-d | 分隔符,按照指定分隔符分割列,默认是制表符“\t” |
-c | 按字符进行切割 后加加 n 表示取第几列 比如-c 1 |
先创建一个hello_world.sh
文件
执行cut -d " " -f 1 hello_world.sh
就会以下内容,表示按制表符切分文件,并取第一列
#!/bin/bash
echo
执行cut -d "/" -f 1 hello_world.sh
就会得到以下内容,表示按/
切分文件,并取第一列
#!
echo "hello world"
执行cut -c 1-4 hello_world.sh
就会得到以下内容,表示按字符切割,取第1位到第4位字符
#!/b
echo
3.2 awk
通过awk [选项参数] '/pattern1/{action1} /pattern2/{action2}...' filename
的方式就可以对目标文件进行特定裁剪
其中pattern
表示 awk 在数据中查找的内容,就是匹配模式action
表示在找到匹配内容时所执行的一系列命令
格式 | 功能 |
---|---|
-F | 指定输入文件分隔符 |
-v | 赋值一个用户定义变量 |
内置变量 | 功能 |
---|---|
FILENAME | 文件名 |
NR | 已读的记录数(行号) |
NF | 浏览记录的域的个数(切割后,列的个数) |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。