注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

随机过程

http://superware.blog.163.com

 
 
 

日志

 
 

awk和sed的简单使用  

2011-06-07 11:28:00|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
awk 主要用于查询,而sed主要用于编辑。

1、awk基本语法:

awk '/pattern/ {action}'

例如:

有如下目录:

+ test
 | ---- fftw_a
 | ---- fftw_b
 | ---- fftw_c
 | ---- lstxt

作如下操作:

ls -l > lstxt


则 lstxt 文件内容是:

total 0
-rw-r--r-- 1 william william 0 2011-06-07 11:31 fftw_a
-rw-r--r-- 1 william william 0 2011-06-07 11:31 fftw_b
-rw-r--r-- 1 william william 0 2011-06-07 11:31 fftw_c
-rw-r--r-- 1 william william 0 2011-06-07 11:31 lstext

现在要找出含有'fftw'的项,然后打印该行的第三、四、六字段,操作如下:

awk  '/fftw/  {printf $3, $4, $6}'  lstxt

结果:

william william 2011-06-07
william william 2011-06-07
william william 2011-06-07



上面语句的意思是:遍历文件lstxt的每一行,查找有'fftw'的行,并将该行的$31、$4、$6行打印到屏幕,其中$3是该行的第三个字段,$4是第四个字段,以此类推。

所以awk命令的意思是:遍历文件的每一行,找出匹配模式/pattern/的行,并对改行作{action}的动作。也就是说awk主要用于查找。


2、sed的基本语法:

sed  's/pattern/pattern/'  lstxt

如果对上述的lstxt作如下操作:

sed  's/fftw/(fftw)/'  lstxt

出现如下结果:

total 12
drwxr-xr-x 2 william william 4096 2011-06-07 10:22 (fftw)_mpi_test
drwxr-xr-x 2 william william 4096 2011-06-07 10:22 (fftw)_mpi_test_02
drwxr-xr-x 2 william william 4096 2011-06-07 10:22 (fftw)_mthread_test
-rw-r--r-- 1 william william    0 2011-06-07 10:31 lstxt

即遍历每一行,将每行中的'fftw'换成'(fftw)'。这在vim中也有相应的命令:

:1, $   s/fftw/(fftw)/g

这也就是sed是simple ed的一个注解。
  评论这张
 
阅读(58)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018