Chinaunix

标题: 如何在文本中生成顺序号 [打印本页]

作者: reallytrue    时间: 2021-12-14 09:23
标题: 如何在文本中生成顺序号
请教,原文本样例如下(行数不固定):
aaaaaa
a0000000abc
a0000000ce
a0000000efc


现希望从第2行开始生成8位顺序号,并替换原来文本中第2-9列的内容,即:
aaaaaa
a0000001abc
a0000002ce
a0000003efc

。。。
。。。
。。。
a0000010efc

a0000011efc


请问如何实现,感谢

作者: baby_神    时间: 2021-12-15 11:46
  1. [root@test-02 ~]# cat a
  2. aaaaaa
  3. a0000000abc
  4. a0000000ce
  5. a0000000efc
  6. [root@test-02 ~]# awk 'NR==1;NR>1{a=sprintf("%07g",NR-1);sub(/0{7}/,a);print $0}' a
  7. aaaaaa
  8. a0000001abc
  9. a0000002ce
  10. a0000003efc
  11. [root@test-02 ~]# awk 'NR==1;NR>1{a=sprintf("%07g",NR-1);sub(/0000000/,a);print $0}' a
  12. aaaaaa
  13. a0000001abc
  14. a0000002ce
  15. a0000003efc
复制代码

作者: legs    时间: 2021-12-16 09:18
说是8位,样例中是7位,按7位来吧:
  1. perl -pe's#\d+#sprintf"%07d",++$n#e'
复制代码

作者: wh7211    时间: 2021-12-16 16:52
回复 1# reallytrue


  1. cat 1                                                
  2. aaaaaa
  3. a0000000abc
  4. a0000000ce
  5. a0000000efc

  6. awk 'NR>1{sub(substr($1,2,7),sprintf("%07d",++a))}1' 1
  7. aaaaaa
  8. a0000001abc
  9. a0000002ce
  10. a0000003efc
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2