我有一些数据,每一行看起来或多或少都是这样的:
11/11/2013 12:10:10 5000 3000 2000
所以对于普通的awk,我会得到:
$1 = 11/11/2013
$2 = 12:10:10,5000,3000,2000现在,我想将这两个元素输送到不同的新awk函数中,因为$1需要根据正斜杠拆分,$2需要根据逗号拆分。
然而,与
awk '{print $1}' $INPUT | awk -F/ '{print $3 "-" $2 "-" $1}'> $OUTPUT我只是访问日期,然后我已经“通过文件”。怎么吹几次?
发布于 2013-11-25 18:51:11
您也可以使用带有多个字段分隔符的awk。考虑以下代码:
> 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发布于 2013-11-25 19:07:56
只需调用split函数即可。不需要一个全新的awk程序:
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]等。
https://stackoverflow.com/questions/20200801
复制相似问题