sed和awk
来源:互联网 发布:软件业务流程图怎么画 编辑:程序博客网 时间:2024/05/08 03:21
备忘一下,只是最最简单的用法
一、sed
sed可以删除、修改文件
文件内容:
$ cat 1.txt
gaofeng 45 56 44
cc 77 88 99
yangyang 3 4 5
例子1
$ sed 's/4/new/g' 1.txt --s表示替换,把字符4替换为new
gaofeng new5 56 newnew
cc 77 88 99
yangyang 3 new 5
$ sed 's/4/new/' 1.txt --不加g,只替换每行第一个4
gaofeng new5 56 44
cc 77 88 99
yangyang 3 new 5
$ sed 's/.4/&new/g' 1.txt --.4是正则表达式,&表示在4后面追加
gaofeng 4new5 56 4new4
cc 77 88 99
yangyang 3 4new 5
二、awk
--awk中的脚本,必须用单引号引起来。可以有多个块,包括一个开始块,多个中间块,一个结尾块。
print语句后的多个参数,如果用逗号分割,会按照FS,即空格打印。如果没有逗号,就是多个参数之间连接。 字符串需要双引号。
也支持printf语句
$0 表示这一行的字符串 $1表示第一个字段。NF表示字段的个数,FS表示分割符,默认是空格。
NR是行号,RS是行分割符,默认是‘\n’. 分割符都是可以重新自定义的。
$ awk 'BEGIN {print "this is begin"};{print "hello,"$1}' 1.txt
this is begin
hello,gaofeng
hello,
hello,cc
hello,yangyang
$ awk 'BEGIN{RS=""}; {print NR,NF;system("date")}' 1.txt --通过system()调用shell命令,主要命令要用“”包起来。
1 4
Sun Feb 26 13:35:54 2017
2 8
Sun Feb 26 13:35:54 2017
如下例,每个段前都可以有一个条件,可以是正则表达式,也可以是类似NF<1之类。
$ awk 'BEGIN {print "this is begin"}; {print "hello,"$1}; /^\n$/ {print}; END {print "this is the END"}' 1.txt
this is begin
hello,gaofeng
hello,
hello,cc
hello,yangyang
this is the END
awk的语法类似c,也类似脚本语言。可以编写代码进行信息统计,平均成绩计算等。
$ awk 'NF>0 {print $1":"($2+$3+$4)/3}' 1.txt
gaofeng:48.3333
cc:88
yangyang:4
一篇好文章:http://www.cnblogs.com/qieerbushejinshikelou/archive/2013/11/20/3420519.html
- sed和awk简介
- sed和awk
- sed和awk简介
- sed和awk简介
- sed和awk简介
- sed 和 awk
- Sed和Awk简介
- sed和awk简介
- sed 和 awk
- sed和awk编程
- 常用awk和sed
- sed 和 awk命令
- sed和awk
- grep、sed和awk
- linux awk和sed
- grep sed 和 awk
- sed 和 awk
- Sed和AWK入门教程之AWK篇
- TDD Your UI Layer
- WebStrom破解
- Linux系统安全需要注意的一些问题
- 几种使用Iconfont的方法
- DispatcherServelt类
- sed和awk
- Hibernate第一天
- LeetCode 85. Maximal Rectangle(Hard)
- 107. Binary Tree Level Order Traversal II
- unlink函数 与 remove函数
- 303. Range Sum Query
- Leetcode_Kth Largest Element in an Array
- Struts第四天
- C++, “包含类的头文件”还是“对类进行前置声明”?