首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Awk多管至不同零件

Awk多管至不同零件
EN

Stack Overflow用户
提问于 2013-11-25 18:47:11
回答 2查看 858关注 0票数 0

我有一些数据,每一行看起来或多或少都是这样的:

11/11/2013 12:10:10 5000 3000 2000

所以对于普通的awk,我会得到:

代码语言:javascript
复制
$1 = 11/11/2013

$2 = 12:10:10,5000,3000,2000

现在,我想将这两个元素输送到不同的新awk函数中,因为$1需要根据正斜杠拆分,$2需要根据逗号拆分。

然而,与

代码语言:javascript
复制
awk '{print $1}' $INPUT | awk -F/ '{print $3 "-" $2 "-" $1}'> $OUTPUT

我只是访问日期,然后我已经“通过文件”。怎么吹几次?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-25 18:51:11

您也可以使用带有多个字段分隔符的awk。考虑以下代码:

代码语言:javascript
复制
> s='11/11/2013 12:10:10,5000,3000,2000'
> awk -F '[,/: ]+' '{for (i=1; i<=NF; i++) print i":"$i}' <<< "$s"
1:11
2:11
3:2013
4:12
5:10
6:10
7:5000
8:3000
9:2000
票数 1
EN

Stack Overflow用户

发布于 2013-11-25 19:07:56

只需调用split函数即可。不需要一个全新的awk程序:

代码语言:javascript
复制
s='11/11/2013 12:10:10,5000,3000,2000'

awk '{split($1,d,"/"); split($2,t,","); print d[3]"-"d[2]"-"d[1]}' <<<"$s"

你可以用同样的方式对t组件做你需要做的任何事情.第一批的t[1]等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20200801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档