Chinaunix首页 | 论坛 | 博客
  • 博客访问: 358615
  • 博文数量: 81
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 847
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-25 22:29
个人简介

执一不失,能君万物http://weidian.com/s/284520723?wfr=c

文章分类

全部博文(81)

文章存档

2016年(11)

2015年(70)

我的朋友

分类: LINUX

2015-07-08 17:26:16


点击(此处)折叠或打开

  1. cut的用法
  2. cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
  3. (1)其语法格式为:
  4. cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
  5. 使用说明
  6. cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
  7. 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
  8. 主要参数
  9. -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  10. -c :以字符为单位进行分割。
  11. -d :自定义分隔符,默认为制表符。
  12. -f :与-d一起使用,指定显示哪个区域。
  13. -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
  14. (2)cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?
  15. cut命令主要是接受三个定位方法:
  16. 第一,字节(bytes),用选项-b
  17. 第二,字符(characters),用选项-c
  18. 第三,域(fields),用选项-f
  19. (3)以“字节”定位
  20. [root@localhost ~]# cat join2
  21. 1:January
  22. 2:February
  23. 3:March
  24. 4:April
  25. 5:May
  26. 6:June
  27. [root@localhost ~]# cat join2|cut -b 3-5,6
  28. Janu
  29. Febr
  30. Marc
  31. Apri
  32. May
  33. June
  34. [root@localhost ~]#
  35. [root@localhost ~]# cat join2|cut -b -3
  36. 1:J
  37. 2:F
  38. 3:M
  39. 4:A
  40. 5:M
  41. 6:J
  42. [root@localhost ~]# cat join2|cut -b 3-
  43. January
  44. February
  45. March
  46. April
  47. May
  48. June
  49. [root@localhost ~]# cat join2|cut -b -3-
  50. cut: invalid byte, character or field list
  51. 请尝试执行"cut --help"来获取更多信息。
  52. [root@localhost ~]# cat join2|cut -b -3,3-
  53. 1:January
  54. 2:February
  55. 3:March
  56. 4:April
  57. 5:May
  58. 6:June
  59. [root@localhost ~]#
  60. #,-3表示从第一个字节到第三个字节,而3-表示从第三个字节到行尾。如果你细心,你可以看到这两种情况下,都包括了第三个字节“c”。-3,3-,你觉得会如何呢?答案是输出整行,不会出现连续两个重叠的c的。
  61. (4)以字符为定位标志
  62. [root@localhost ~]# cat join1
  63. 1:一月
  64. 2:二月
  65. 3:三月
  66. 4:四月
  67. 5:五月
  68. 7:777
  69. [root@localhost ~]# cat join1|cut -c 1
  70. 1
  71. 2
  72. 3
  73. 4
  74. 5
  75. 7
  76. [root@localhost ~]# cat join1|cut -c 2
  77. :
  78. :
  79. :
  80. :
  81. :
  82. :
  83. [root@localhost ~]# cat join1|cut -c 3
  84. 7
  85. [root@localhost ~]# cat join1|cut -c 4
  86. 7
  87. [root@localhost ~]# cat join1|cut -b 1
  88. 1
  89. 2
  90. 3
  91. 4
  92. 5
  93. 7
  94. [root@localhost ~]# cat join1|cut -b 2
  95. :
  96. :
  97. :
  98. :
  99. :
  100. :
  101. [root@localhost ~]# cat join1|cut -b 3
  102. ???半?7
  103. [root@localhost ~]# cat join1|cut -b 4
  104. ?
  105. o
  106. ?
  107. ?
  108. o
  109. 7
  110. [root@localhost ~]#
  111. #-b和-c的区别:使用中文字符的时候可以看的出来。
  112. 当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开。
  113. [root@localhost ~]# cat join1|cut -nb 2-5
  114. :一
  115. :二
  116. :三
  117. :四
  118. :五
  119. :777
  120. [root@localhost ~]# cat join1|cut -nb 3-5
  121. 777
  122. [root@localhost ~]#
  123. (5)以域为单位
  124. [root@localhost ~]# head -n 4 /etc/passwd|cut -d: -f -2,6-
  125. root:x:/root:/bin/bash
  126. bin:x:/bin:/sbin/nologin
  127. daemon:x:/sbin:/sbin/nologin
  128. adm:x:/var/adm:/sbin/nologin
  129. [root@localhost ~]#
  130. #-d 后面加上“间隔符号”
  131. (6)TAB 空格
  132. cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了。

阅读(1802) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~