免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 39103 | 回复: 1

[Linux] awk文字处理 [复制链接]

论坛徽章:
0
发表于 2019-10-08 15:15 |显示全部楼层
各位大神请不吝赐教!我有个文件有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,如下所示
1  1
2  1
3  1
4  1
5  1
...
38 1
39 1
1  2
2  2
3  2
4  2
5  2
...
38  2
39  2
40  2

1   3
2   3
3   3
4   3
5   3
...
38  3
39  3
40  3


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

论坛徽章:
0
发表于 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}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP