加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 重置awk中的行号计数

发布时间:2020-12-15 22:25:41 所属栏目:安全 来源:网络整理
导读:我有这样的文件 ?file.txt的 0 1 a1 1 b2 1 d3 1 d4 2 g5 2 a6 3 b7 3 d8 4 d9 5 g10 5 g... 我希望第二列$1中的字段值在使用awk或bash脚本更改时,在第一列$1中将重置行数计数设置为0. 结果 0 1 a1 1 b2 1 d3 1 d0 2 g1 2 a0 3 b1 3 d0 4 d0 5 g1 5 g... 解
我有这样的文件

?file.txt的

0   1   a
1   1   b
2   1   d
3   1   d
4   2   g
5   2   a
6   3   b
7   3   d
8   4   d
9   5   g
10   5   g
.
.
.

我希望第二列$1中的字段值在使用awk或bash脚本更改时,在第一列$1中将重置行数计数设置为0.

结果

0   1   a
1   1   b
2   1   d
3   1   d
0   2   g
1   2   a
0   3   b
1   3   d
0   4   d
0   5   g
1   5   g
.
.
.

解决方法

只要你不介意一点多余的内存使用,并且第二列是排序的,我认为这是最有趣的:

awk '{$1=a[$2]+++0;print}' input.txt

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读