grep
grep [-acinv] [--color=auto] '查找字符串' filename
参数:
- -a:将binary文件以text文件的方式查找数据
- -c:计算找到‘查找字符串’的次数
- -i:忽略大小写
- -n:顺便输出行号
- -v:反向选择,即显示出没有‘查找字符串’内容的那一行
- –color=auto:将找到的关键字部分加上颜色显示
‘查找字符串’:
- 查找特定字符串
- 利用中括号[]来查找集合字符
- 行首与行尾字符^$
- 任意一个字符.与重复字符*
- 限定连续RE字符范围{}
| 特殊符号 | 代表意义 |
|---|---|
| [:alnum:] | 代表英文大小写字符及数字,即0-9,A-Z,a-z |
| [:alpha:] | 代表任何英文大小写字符,即A-Z,a-z |
| [:blank:] | 代表空格键与[tab]键 |
| [:cntrl:] | 代表键盘上面的控制按键,包括CR,LF,Tab,Del等 |
| [:digit:] | 代表数字,0-9 |
| [:graph:] | 除了空格符(空格和[tab])外的所有其他按键 |
| [:lower:] | 小写字符,a-z |
| [:print:] | 代表任何可以被打印出来的字符 |
| [:punct:] | 代表标点符号,即” ’ ? ! ; : # $ |
| [:upper:] | 代表大写字符 A-Z |
| [:space:] | 代表任何会产生空白的字符,包括空格符 [Tab] CR等 |
| [:xdigit:] | 代表十六进制的数字类型,因此包括0-9,A-F,a-f的数字与字符 |
| RE字符 | 意义 |
|---|---|
| ^word | 待查找的字符串(word)在行首 |
| word$ | 待查找的字符串(word)在行尾 |
| . | 代表一定有一个任意的字符 |
| \ | 转移字符 |
| * | 重复零个到无穷多个的前一个字符 |
| [list] | 从字符集合的RE字符里面找出想要选取的字符 |
| [n1-n2] | 从字符集合的RE字符里面找出想要选取的字符范围 |
| [^list] | 从字符集合的RE字符里面找出不要的字符串或范围 |
| \{n,m\} | 连续n到m个的前一个RE字符,若为\{n\}则是连续n个的前一个RE字符,若为\{n,\}则是连续n个以上的前一个RE字符 |
扩展正则表达式 egrep or grep -E
| RE字符 | 意义 |
|---|---|
| + | 重复一个或一个以上的前一个RE字符 |
| ? | 零个或一个的前一个RE字符 |
| | | 用 或 的方式找出数个字符串 |
| () | 找出“组”字符串 |
| ()+ | 多个重复组的判别 |
sed
可以将数据进行替换、删除、新增、选取特定行等功能。
搭配cat和管道处理文本文件
sed [-nefr] [动作]
参数:
- -n:使用安静模式
- -e:直接在命令行模式上进行sed的动作编辑
- -f:直接将sed的动作写在一个文件内,-f filename则可以执行filename内的sed动作
- -r:sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式语法)
- -i:直接修改读取文件内容,而不是由屏幕输出。
动作说明: [n1 [,n2]] function
例如动作需要在10行到20行之间进行,则“10,20[动作行为]”
function参数:
- a: 新增,a的后面可以接字符串,这些字符串会在目前的下一行出现
- c:替换,c的后面接字符串,替换n1,n2之间的行!
- d: 删除
- i: 插入,i的后面接字符串,会在目前的上一行出现
- p: 打印,将某个选择的数据打印出来,通常配合参数sed -n使用
- s: 替换,可以直接进行替换的工作,通常这个s的动作可以搭配!!
部分数据的查找并替换的功能:
sed 's/要被替换的字符串/新的字符串/g'
awk
awk也是一个好用的数据处理工具。相比于sed常常用作于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此,awk相当适合处理小型的数据!
awk '条件类型1{动作1} 条件类型2{动作2}...' filename
例子:last -n 5 | awk '{print $1 "\t" $3}'
流程:
- 读入第一行,并将第一行的数据填入0(代表一整行数据)、1(第一列)、$2等变量中;
- 依据条件类型的限制,判断是否需要进行后面的动作
- 做完所有的动作与条件类型
- 若还有后续的“行”的数据,则重复上面1-3的步骤,直到所有的数据都读完为止。
awk以行为一次处理的单位,以字段为最小处理单位。

本文介绍了 Linux 下文本处理工具 grep、sed 和 awk 的使用方法,包括基本语法、参数选项及正则表达式的应用。通过实例展示了如何高效地进行文本搜索、替换和格式化。
1367

被折叠的 条评论
为什么被折叠?



