Linux文本处理3大利器sed grep awk

一、grep(Globel search Regular Expression and Print out the line)

grep格式:grep [选项] [模式] [文件...]


-A n:表示显示该行及其后n行
-B n:表示显示该行及其前n行
-C n:表示显示该行及其前后各n行

--color 匹配的项用不同颜色显示


匹配的目标字符串中包含元字符,需要利用转移符"\"屏蔽其意义,如grep "com\.con" *,句号"."字符是元字符

或字符"|"是扩展正则表达式中定义的,grep需要加上-E选项才能支持它,不带-E选项,会将"|"字符解析为字面意义

元字符:

.:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集:[:digit:]数字,[:lower:]小写字母,[:upper:]大写字母,[:punct:]标点符号,[:space:]空白字符,[:alpha:]所有字母,[:alnum:]所有字母和数字

*:匹配其前面的字符任意次

\{m,n\}:匹配其前面的字符至少m次,至多n次

"^"表示行首,^$表空白行,[^$]表示空白行的范围,前面加上"^"符号取反^[^$]表示非空白行

\(\)  \1匹配第一个括号内容

\<\>符号用于精确匹配,grep "\<the\>" file,精确匹配the这个单词。grep命令的-w选项也可用于精确匹配



模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2,可用在shell脚本中判断

 或字符"|"是扩展正则表达式egrep中定义的,grep需要加上-E选项才能支持它 egrep; grep -F 使用字面值 fgrep。



二、sed

sed [选项] 'sed命令' 输入文件

选项:

-n:静默模式,不再显示模式空间中的内容
-i:直接修改原文件
-e SCRIPT -e SCRIPT:添加脚本到将要执行的命令中,可以同时执行多个脚本
-f /PATH/TO/SED_SCORIPT:添加脚本文件中的内容到将要执行的命令中 (#!/bin/sed -f)  
#sed -f /path/to/script file
-r:表示使用扩展正则表达式

命令:




sed -n '1,+2p' file 从第1行开始往后2行

s/pattern/string/g/i  g/i修饰符 全局/忽略大小写 &:引用模式匹配到的整个串

命令组:

sed -n -e '/pattern/p' -e '/pattern/=' input

sed -n '/pattern/{p;=}' input

sed -n '/pattern/p;/pattern/=' input  


三、awk

awk [options] 'PATTERN { action }' file1, file2, ...    awk '/^$/{print "This is blank."}' input   

awk [options] 'script' file1, file2, ...   (#!/bin/awk -f)


print item1, item2, ...

printf("%fmt \t%s",$1,$3) awk 'BEGIN {FS=",";print "Name\t\tPhoneNumber"} {printf("%-10.3f\t%s\n", $1, $3)}' file




关系和布尔表达式



连接多个条件 || && !


系统变量



内置字符串函数



awk脚本传递参数

awk 'BEGIN {FS=","} {print NR, $0}'OFS="." n=1  file   命令行参数不能被BEGIN字段语句访问


条件语句和循环语句

if (条件表达式)

   动作1

else

    动作2

while(条件表达式)

         动作

do

    动作

while(条件表达式)


for(设置计数器初值;测试计数器;计数器变化)

    动作



数组:

array[index]=value  数组的索引可以是字符串也可以是数字

awk 'BEGIN{data[10.15]="1200"; if ("10.15" in data) print "found element."} '  找不到

awk定义了一种for循环用来访问关联数组,语法如下:

for (variable in array)

      do something with array[variable]




http://lq2419.blog.51cto.com/1365130/1238880

http://blog.csdn.net/taiyang1987912/article/details/39187525

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值