一串不包含特殊字符的正则表达式匹配它自己
cat 目标文档 | grep 需查找的字符
^匹配一行的开头
grep ^a
会匹配出所有a开头的内容
$匹配一行的结束
grep a$
会匹配出所有以a结尾的内容
^$会匹配出所有的空行
.匹配一个任意的字符
grep x..y
会匹配出xaby xvcy等的所有行
*不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次
grep x*y
会匹配出xy xxy xxxy等的所有行
^a.*b$会匹配出以a开头,以b结束的所有行,ab之间的内容为.*,表示随便是什么内容都可以
[]表示匹配某个范围内的一个字符
| 格式 | 功能 |
|---|---|
| [6,8] | 匹配 6 或者 8 |
| [0-9] | 匹配一个 0-9 的数字 |
| [0,9]* | 匹配任意长度的数字字符串 |
| [a-z] | 匹配一个 a-z 之间的字符 |
| [a-z]* | -匹配任意长度的字母字符串 |
| [a-c, e-f] | 匹配 a-c 或者 e-f 之间的任意字符 |
\表示转义,和特殊字符组合使用,比如grep '\$'就可以匹配出带有$的内容了
注意需要使用单引号将表达式引起来
通过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
通过awk [选项参数] '/pattern1/{action1} /pattern2/{action2}...' filename的方式就可以对目标文件进行特定裁剪
其中pattern表示 awk 在数据中查找的内容,就是匹配模式
action表示在找到匹配内容时所执行的一系列命令
| 格式 | 功能 |
|---|---|
| -F | 指定输入文件分隔符 |
| -v | 赋值一个用户定义变量 |
| 内置变量 | 功能 |
|---|---|
| FILENAME | 文件名 |
| NR | 已读的记录数(行号) |
| NF | 浏览记录的域的个数(切割后,列的个数) |