Shell-awk或sed筛选文本部分数据

Shell-awk或sed筛选文本部分数据

归属感 发布于 2017-08-22 字数 387 浏览 1423 回复 3

有下面一个log日志:

912012091210203212   3487923(feixue11)  1500(3600)   15  2012-09-01 12:23:12
912012091010303456 8434662(woshini) 1000(2000) 10 2012-09-04 02:12:34
912012090910501233 7856091(sda3sd) 200(1200) 2 2012-09-07 12:11:46
912012090510604567 5621697(dsa4fg) 500(600) 5 2012-09-04 12:39:32

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜柠檬 2017-10-22 3 楼

我也用awk写了一个简单些的:

awk 'gsub(/w+(|)/,""){print $2" "$3}' log.txt

瑾兮 2017-09-30 2 楼

这样行不

 awk '{tmp2=substr($2,index($2,"(")+1);tmp3=substr($3,index($3,"(")+1);a[FNR]=substr(tmp2,0,length(tmp2)-1) "t" substr(tmp3,0,length(tmp3)-1);print a[FNR]}' 1.txt

灵芸 2017-09-27 1 楼

awk一句话搞定,不要把简单的问题复杂化。

[root@Jason64-17 ~]# cat net01.txt
912012091210203212 3487923(feixue11) 1500(3600) 15 2012-09-01 12:23:12
912012091010303456 8434662(woshini) 1000(2000) 10 2012-09-04 02:12:34
912012090910501233 7856091(sda3sd) 200(1200) 2 2012-09-07 12:11:46
912012090510604567 5621697(dsa4fg) 500(600) 5 2012-09-04 12:39:32
[root@Jason64-17 ~]# awk -F '[()]' '{print $2,$4}' net01.txt
feixue11 3600
woshini 2000
sda3sd 1200
dsa4fg 600

复杂的也行

[root@Jason64-17 ~]# !912
awk '{gsub(/.*(/, "", $2);gsub(/) [0-9]*(/, "t");gsub(/).*/, "");print $2,$3}' net01.txt
feixue11 3600
woshini 2000
sda3sd 1200
dsa4fg 600

更多内容解答请戳我的博客http://lspgyy.blog.51cto.com/