Linux文本处理工具

文本处理三剑客

  • grep: 文本过滤工具

  • sed: stream editor,流编辑器,文本编辑器

  • awk: 文本报告生成器(格式化文本)

grep正则表达式

grep使用:

grep [options] PATTERN [FILE…]

grep [OPTIONS] [-e PATTERN] [-f FILE] [FILE…]

选项:
–color=auto:对匹配上的文本着色后高亮显示

-i: ignorecase, 忽略字符大小写

-o: 仅显示匹配的字符串本身

-v, --invert-match: 显示不能被模式匹配到的行

-E: 支持使用扩展的正则表达式元字符

-q, --quiet,–silent: 静默模式,不输出任何内容

-A number: after,显示匹配上的后number行

-B number: before,显示匹配上的前number行

-C number: context,显示匹配上的前后number行

基本正则表达式元字符:

1、字符匹配

.: 匹配任意单个字符

[]: 匹配指定范围内的任意单个字符

[^]: 匹配指定范围外的任意单个字符

特殊表达:[:digit:][:upper:][:lower:][:alpha:][:alnum:][:punct:][:space:]

2、匹配次数

*: 任意次,可以是0,1或者多次

\?: 匹配0或者1次

\+: 匹配1次或者多次

\{m\}: 精确匹配m次

\{m,n\}: 至少匹配m次,最多匹配n次

\{m,\}: 至少匹配m次

\{0,n\}: 最多匹配n次

3、位置锚定

^: 锚定行首

$: 锚定行末

\<或者\b: 锚定单词首

\>或者\b: 锚定单词末

4、分组及引用

(): 小括号中的多个字符被绑定在一起,作为整体被处理

\1或者\2或者\3: 模式从左侧起,第一(二、三)个括号以及与之匹配的右括号之间的模式所匹配的字符串

egrep扩展的正则表达式

grep -E等效于egrepegrep的选项与grep的常用选项基本一直,支持-i -o -v -q -A -B -C-G支持基本的正则表达式。

扩展的正则表达式元字符

1、字符匹配:

.: 匹配任意单个字符

[]: 匹配指定范围内的任意单个字符

[^]: 匹配指定范围外的任意单个字符

2、匹配次数

*: 任意次,可以是0,1或者多次

?: 匹配0或者1次

+: 匹配1次或者多次

{m}: 精确匹配m次

{m,n}: 至少匹配m次,最多匹配n次

{m,}: 至少匹配m次

{0,n}: 最多匹配n次

3、位置锚定

^: 锚定行首

$: 锚定行末

\<或者\b: 锚定单词首

\>或者\b: 锚定单词末

4、分组及引用

(): 小括号中的多个字符被绑定在一起,作为整体被处理

\1或者\2或者\3: 模式从左侧起,第一(二、三)个括号以及与之匹配的右括号之间的模式所匹配的字符串

5、或者关系

a|b:匹配a或者b,例如:C|cat匹配C或者cat,而(c|C)at匹配cat或者Cat

fgrep不支持正则表达式

当无需使用正则时使用fgrep效率更高

文本查看及处理工具

1、wc

-l 统计行数
-w 统计单词数
-c 统计字节数

2、cut

-d char: 以指定的字符为分隔符
-f FIELDS: 前行出字段
#: 指定单个字段
#-#: 连续的几个字段
#,#: 离散的多个字段

例如: cut -d: -f1,3-5,7 /etc/passwd表示查看按:分隔的第1个,3-5个和第7个字段内容。

3、sort

sort [OPTION]… [FILE]…

-t CHAR: 指定分隔符
-k #: 指定排序的字段
-n: 基于数字大小排序,默认为字符字典排序
-r: 逆序排序
-f: 不区分大小写
-u: 去重

例如:sort -t: -k4 -u -f -r -n /etc/passwd

4、uniq

-c: 显示美航的重复次数
-u: 仅显示未重复的行
-d: 仅显示重复的行

例如:cut -d: -f7 /etc/passwd | sort | uniq -c cut -d: -f7 /etc/passwd | sort | uniq -u cut -d: -f7 /etc/passwd | sort | uniq -d

5、diff

diff oldFile newFile

-u: 使用unfied机制,显示修改行的上下文,默认为上下3行,可以使用-u#指定行数

6、patch 向文件打补丁

patch [OPTIONS] -l patch_file oldfile

patch oldfile < patch_file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值