linux grep字符串,Linux grep awk 命令的正则匹配提取字符串-Fun言

grep 正则匹配字符串

grep '[Aa]aa' filename

# 过滤出包含有Aaaa或者aaaa的一行

grep '[A-Z]' filename

# 包含至少一个大写字母的行

grep -w '[tT]est' filename 包含单词和test的行.

# force PATTERN to match only whole words

grep -s 'ken sun' filename

# 找到包含ken sun的行, 但不打印行, 而是用来检查退出状态.

# -s, --no-messages         suppress error messages   相当于静默模式

grep -v aaa filename

# 打印不包含aaa的行.

grep -l 'dear cathy' *

# 打印包含dear cathy的文件的文件名清单.

grep -n tom file

# 打印匹配的行并追加行号.

egrep 正则匹配字符串

# egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式.

# 注意二者之间的区别.

egrep '(ab)+' filename

# 包含至少一个ab的行.

egrep 'aaaa+' filename

# 包含至少四个a的行

# + 匹配一个或者多个先前的字符, 至少一个先前字符? 匹配0个或者多个先前字符.

egrep 'x[0-9]?' filename

# 包含x或者x后面跟着0个或者多个数字的行.

egrep '(TOM|DAN) SAVAGE' filename

# 包含 TOM SAVAGE 和DAN SAVAGE的行.

# () 字符组, 如: love(able|ers) 匹配loveable或lovers.

egrep '[A-Z]...[0-9]' filename

# 有五个字符, 第一个式大写, 最后一个是数字的行.

awk 正则匹配提取字符串

awk -F"[@ /t]" '{print $2,$3}' test

# 以@,空格,Tab键分割test文件的每一行,并输出第二、第三列。

# -F指定分隔符,字符或字符串都可,划分字段

awk '$2~/^(126|yahoo)/{print $2, $3}' test

# 如果改行的第二个字段以"123"或"yahoo"开始,则输出改行的第二、第三列。

awk '$1~/[0-9][0-9]$/{print $1, $3}' test

# 如果改行的最后两个字段以数字结束,则输出改行的第一、第三列。

awk '$2 == "gmail.com"{$1 = "ggg";print}' test

# 输出test文件中第二个字段是"gmail.com"的行,

# 并把改行第一列改为"ggg",并不能修改test文件内容

awk '$2 == "gmail.com"{$1 = "ggg"}{print}' test

# 输出test文件中所有行,并且如果第二个字段是"gmail.com",

# 把改行第一列改为"ggg",和上边那个的区别:

# 主要就是这个输出所有行上边那个只输出第一个字段

awk '{IGNORECASE=1;if($2 ~/^[a-z]/&& $2~/net$/){print $0}}' test

# 打开test文件,忽略字母大小写,如果第二字段以[a-z]开头,

# 并以"net"结尾,则输出该行。

参考推荐:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值