shrimpj 发表于 2019-10-08 15:15

awk文字处理

各位大神请不吝赐教!我有个文件有14列,其中第八列为1到39/40/100的数字循环。如果我把1-39/40/100标记为一个block,这种block会在每个文件中出现3-5次不等。如下所示: 1
2
3
4
5
...
38
39
1   
2
3
4
5
...
38
39
40

1
2
3
4
5
...
38
39
40

我想让文档生成新的一列,来标记block,也就是说每次遇到1block加1,如下所示
11
21
31
41
51
...
38 1
39 1
12
22
32
42
52
...
382
392
402

1   3
2   3
3   3
4   3
5   3
...
383
393
403


我已经可以用awk找到第八列的最小值 awk -F, 'BEGIN{a=100}{if($8<0+a)}END{print a}' 可是怎么在第九列用awk生成block的标记啊?请各位大神不吝赐教,小女子感激不尽!!!

shrimpj 发表于 2019-10-08 16:18

我自己写出来了,谢谢大家 如下,希望对大家有帮助
$ awk -F, 'BEGIN {block_id=0} $8 == 1 {block_id++} {print $1, $2, $3,
$4, $5, $6, $7, $8, block_id, $9, $10, $11, $12, $13, $14}'
页: [1]
查看完整版本: awk文字处理