使用 counter awk 对重复行重新编号

2024-01-15

我的 csv 中有重复的单词。我需要这样计算:

jsmith
jsmith
kgonzales
shouston
dgenesy
kgonzales
jsmith

to this:

[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection

我有这样的东西,但它对我来说不能正常工作......或者我不能这样做在此输入链接描述 https://stackoverflow.com/a/29977924/8349144


一种简单的方法是使用用户名作为索引维护一个数组,并在每次读取用户时递增它,例如

awk '{ print (($1 in a) ? $1 a[$1] : $1) "@email.com"; a[$1]++ }' file

The ternary (($1 in a) ? $1 a[$1] : $1)只是检查用户是否在a[]但是,如果是这样,则使用名称加上数组的值$1 a[$1]如果用户不在数组中,那么它只使用用户$1。三元的结果与"@email.com"来完成输出。

最后,用户的数组元素的值递增,a[$1]++.

使用/输出示例

将你的名字放在一个名为的文件中users你将会拥有:

$ awk '{ print (($1 in a) ? $1 a[$1] : $1) "@email.com"; a[$1]++ }' users
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection

将电子邮件保留在输入文件中

如果您的输入已在用户名末尾包含电子邮件,那么您只需输出该记录并跳到下一条记录,例如

awk '$1~/@/{print; next} { print (($1 in a) ? $1 a[$1] : $1) "@email.com"; a[$1]++ }' users

这将保留[email protected] /cdn-cgi/l/email-protection从你的评论中。

输入示例

jsmith
jsmith
kgonzales
shouston
[email protected] /cdn-cgi/l/email-protection
dgenesy
kgonzales
jsmith

示例输出

[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 counter awk 对重复行重新编号 的相关文章

随机推荐