• 需求: 更换文本中第二次出现的字符串内容
文本内容格式如下
aaaa
bbbb
aaaa
dddd
aaaa
eeee

只更换第二次出的aaaa(也就是本例中的第三行内容)为fffffff,其它内容保持不变
  1. 使用数组计数,加判断
awk '$0=="aaaa"{a[$1]++;if(a[$1]==2){print "fffffff"}else{print}}$0!="aaaa"{print}' file
aaaa
bbbb
fffffff
dddd
aaaa
eeee
awk '{a[$1]++;if(a["aaaa"]==2&&$0=="aaaa"){print "fffffff"}else{print}}' file
awk '$0=="aaaa"&&++a[$0]==2{$0="fffffff"}1' file
  1. 使用变量计数
awk '$0=="aaaa"{if(++c==2)$0="fffffff"}1' file
  1. 使用变量计数,利用sub替换
awk '$0=="aaaa"{c++}c==2&&$0=="aaaa"{sub(/.*/,"fffffff")}1' file

相关文章:

  • 2021-10-11
  • 2021-10-05
  • 2022-12-23
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-28
  • 2022-12-23
  • 2021-10-29
相关资源
相似解决方案