免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3323 | 回复: 9
打印 上一主题 下一主题

设置行号的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-23 19:55 |只看该作者 |倒序浏览
如下

cat -n /tmp/test.txt
     1  aaa
     2  bbb
     3  ccc
     4  ddd
     5  eee
     6  fff

希望输出的行号是从“0”开始,而不是从“1”开始, 不一定要使用cat命令,其他什么命令都可以,sed 啊什么的都行, 谢谢!!

论坛徽章:
0
2 [报告]
发表于 2009-04-23 20:01 |只看该作者
[test@ ttt ] $ cat -n data |awk '{print $1-1,$2 }'         
0 b_cs_iter_1.am
1 a_c_cs_iter_1.am
2 b_cs_iter_10.am
3 c_b_cs_iter_4.am
4 b_cs_iter_11.am
5 a_c_cs_iter_12.am
6 b_cs_iter_2.am
7 c_b_cs_iter_11.am
8 a_c_cs_iter_13.am
9 b_cs_iter_6.am
10 c_b_cs_iter_1.am
11 a_c_cs_iter_5.am

论坛徽章:
0
3 [报告]
发表于 2009-04-23 20:02 |只看该作者
[test@ ttt ] $ awk '{print NR-1,$0}' data
0 b_cs_iter_1.am
1 a_c_cs_iter_1.am
2 b_cs_iter_10.am
3 c_b_cs_iter_4.am
4 b_cs_iter_11.am
5 a_c_cs_iter_12.am
6 b_cs_iter_2.am
7 c_b_cs_iter_11.am
8 a_c_cs_iter_13.am
9 b_cs_iter_6.am
10 c_b_cs_iter_1.am
11 a_c_cs_iter_5.am

论坛徽章:
0
4 [报告]
发表于 2009-04-23 20:07 |只看该作者
[root@Mylinux tmp]# cat file
a b c
x y z
j k l
[root@Mylinux tmp]# awk '{print NR-1,$0}' file
0 a b c
1 x y z
2 j k l

论坛徽章:
0
5 [报告]
发表于 2009-04-23 20:08 |只看该作者

回复 #3 我是DBA 的帖子

发一个还没你发两个的快

论坛徽章:
0
6 [报告]
发表于 2009-04-23 20:25 |只看该作者
学习了, 谢谢!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2009-04-23 21:31 |只看该作者

回复 #1 zsgd 的帖子

nl -b a -v 0 urfile

论坛徽章:
0
8 [报告]
发表于 2009-04-24 08:47 |只看该作者
nl命令很好,很强大

  1. 指令名称:
  2. nl(1) - 显示文件的行数及内容
  3. 语法:
  4. nl [OPTION]... [FILE]...
  5. 说明:
  6. 将指定文件的内容附加上行数,显示到标准输出。当没有指定文件名或使用 "-" 符号时,数据将由标准输入读入。

  7. 如果你看完以下的选项说明,你会知道,这是个功能相当不错的指令。
  8. 选项:
  9. -b, --body-numbering=STYLE
  10. 自订附加的行号样式(STYLE)
  11. -d, --section-delimiter=CC
  12. 使用 CC 字符分辨标头、内容和脚注
  13. -f, --footer-numbering=STYLE
  14. 自订脚注附加的行号样式(STYLE)
  15. -h, --header-numbering=STYLE
  16. 自订标头附加的行号样式(STYLE)
  17. -i, --page-increment=NUMBER
  18. 自订行的递增数(NUMBER)
  19. -l, --join-blank-lines=NUMBER
  20. 指定空白行的合并行数(NUMBER),将 n 行合并成一行。
  21. -n, --number-format=FORMAT
  22. 指定附加行数的格式(FORMAT)
  23. -p, --no-renumber
  24. 分页后不重设行数
  25. -s, --number-separator=STRING
  26. 插入指定的字符串(STRING)分隔行号和内容
  27. -v, --first-page=NUMBER
  28. 设定每页第一行的行数(NUMBER)
  29. -w, --number-width=NUMBER
  30. 自订显示行数的位数(NUMBER)
  31. --help
  32. 显示程序用法信息
  33. --version
  34. 显示程序本身的版本信息
  35. 指令预设的选项为 -v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn。CC 是两个用来分辨每页的标头、内容和脚注的字符;如果没有指定第二个字符则表示是 :。请输入 \\ 表示 \ 字符。
  36. 在选项说明中所提到的样式(STYLE)可以是以下其中一个:
  37. a 每一行都加上行号
  38. t 只有非空白的行才加上行号
  39. n 每一行都不加行号
  40. pREGEXP 只有行内容符合正规表示式的才加上行号
  41. 在选项里中的格式(FORMAT)可以是以下其中一个:
  42. ln 向左对齐,前面不加零补位
  43. rn 向右对齐,前面不加零补位
  44. rz 向右对齐,前面加零补位
  45. 实例说明:
  46. 在 cat 指令有个 -n 选项,能为输出加上行数。但 nl 指令则提供了更多这方面的弹性。
  47. 加上行数
  48. # cat -n fileA
  49. # nl fileA
  50. 以上这两种方式,都可以为文件 fileA 的显示,加上需要的行号。
  51. 但如果想要让附加的行数,做左右对齐或者是补零的动作就得依赖 nl 指令来做了。
  52. # nl -n rz fileA
  53. 000001  /home
  54. 000002  |-- SourceCode
  55. 000003  |   |-- MySQL
  56. 000004  |   |   |-- filter-requires-mysql.sh
  57. 000005  |   |   |-- my.cnf
  58. .....略
  59. 变更行数的递增值、显示位数
  60. 预设的行数递增值是1,但这可以改变。选项 -i 可以让我们做到这一点
  61. # nl -i 2 fileA
  62.      1  /home
  63.      3  |-- SourceCode
  64.      5  |   |-- MySQL
  65.      7  |   |   |-- filter-requires-mysql.sh
  66.      9  |   |   |-- my.cnf
  67. .....略
  68. #
  69. 除了递增值以外,还有设定显示行数的位数。也就是 -w 选项,程序的默认值为6。如果有必要的话,我们可以自行更改
  70. # nl -n rz -w 3 bb
  71. 001     /home
  72. 002     |-- SourceCode
  73. 003     |   |-- MySQL
  74. 004     |   |   |-- filter-requires-mysql.sh
  75. 005     |   |   |-- my.cnf
  76. .....略
  77. #
  78. 这篇暂时到此。
复制代码

论坛徽章:
0
9 [报告]
发表于 2009-04-24 11:32 |只看该作者

回复 #7 blackold 的帖子

还是这个比较直观。 好像awk都是在行数减一来实现的

论坛徽章:
0
10 [报告]
发表于 2009-04-24 15:52 |只看该作者
学习nl
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP