首页 存档 技术 查看内容

linux文本处理awk、sed、grep

2018-3-30 13:00 |来自: 互联网 270 0

摘要: 测试百晓生ceshibaixiaosheng测试圈懂的最多的人,跟着百晓生一起学测试,你定会有收获。我就在你的口袋,你有问题难得倒我吗?PS:一颗安利,百晓生继续招种子用户啦。积分攒够兑换礼品的就会得到种子群的邀请,怎 ...

测试百晓生

ceshibaixiaosheng

测试圈懂的最多的人,跟着百晓生一起学测试,你定会有收获。我就在你的口袋,你有问题难得倒我吗?

PS:一颗安利,百晓生继续招种子用户啦。积分攒够兑换礼品的就会得到种子群的邀请,怎么得到积分呢?


● 在百宝箱-我的任务 里面进行游戏、测试题、留言等互动就能获得对应积分

● 积分可以兑换辣条、测试行业热门书籍。后期奖品正在持续上架中....

● 积分还能换取简历写作的指导,百晓生的成员都是面人无数的哦

● 积分还能....培训....反正我是信了


正文


今天来分享三个linux的文本处理命令,gerp 查找, sed 编辑, awk 根据内容分析并处理.



awk


基础概念


Awk把文件(或其他方式的输入流, 如重定向输入)看作一个记录集, 把每一行看作一条记录, 把每一行中以空格(或\t,或用户自己指定的分隔符)分割的字符串看作一个字段. 这似乎把文件记录看成数据库. 但是, awk仍然以行为单位逐行处理. 本例子以下面的文件(命名为test.txt)内容做演示:


test.txt文件内容:


zhangsan 1977 male computer 83
lisi 1989 male math 99
wanglijiang 1990 female chinese 78
xuliang 1977 male economic 89
xuxin 1986 female english 99
wangxuebing 1978 male math 89
lichang 1989 male math 99
wanglijiang 1990 female chinese 78
zhangsansan 1977 male computer 83
langxuebing 1978 male math 89
lisibao 1989 male math 99
xiaobao 1990 female chinese 78


一行中的5个字段分辨表示姓名, 出生年, 性别,科目,分数, 是一个很传统很典型的报表文件.

Awk基本语法: awk ‘pattern1 {command1;command 2…; command 3}pattern2 { command …}’
pattern表示用来过滤记录的模式, 可是是正则表达式, 关系运算表达式, 也可以什么也没有(表示选中所有记录);
每个pattern选中的行记录会被花括号括起来的命令command操作一遍, command之间用;分割. 花括号里面可以什么也没有, 则默认为print输出整行记录. Comamnd可以是输出, 可以是算术运算, 逻辑运算, 循环控制等等.
先看几个例子, 以建立对awk的命令直观的了解.


awk '/1990/' test.txt

#//直接输出1990年出生的同学;


结果:

wanglijiang 1990 female chinese 78

wanglijiang 1990 female chinese 78

xiaobao 1990 female chinese 78


awk '/chinese/{print "语文";print "语文"}' test.txt

#// 对chinese的课程的行输出两行”语文 ”;


结果:

语文

语文

语文

语文

语文

语文


awk '20

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部