Chinaunix首页 | 论坛 | 博客
  • 博客访问: 372385
  • 博文数量: 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. 一
  85. 二
  86. 三
  87. 四
  88. 五
  89. 7
  90. [root@localhost ~]# cat join1|cut -c 4
  91. 月
  92. 月
  93. 月
  94. 月
  95. 月
  96. 7
  97. [root@localhost ~]# cat join1|cut -b 1
  98. 1
  99. 2
  100. 3
  101. 4
  102. 5
  103. 7
  104. [root@localhost ~]# cat join1|cut -b 2
  105. :
  106. :
  107. :
  108. :
  109. :
  110. :
  111. [root@localhost ~]# cat join1|cut -b 3
  112. ???半?7
  113. [root@localhost ~]# cat join1|cut -b 4
  114. ?
  115. o
  116. ?
  117. ?
  118. o
  119. 7
  120. [root@localhost ~]#
  121. #-b和-c的区别:使用中文字符的时候可以看的出来。
  122. 当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开。
  123. [root@localhost ~]# cat join1|cut -nb 2-5
  124. :一
  125. :二
  126. :三
  127. :四
  128. :五
  129. :777
  130. [root@localhost ~]# cat join1|cut -nb 3-5
  131. 一
  132. 二
  133. 三
  134. 四
  135. 五
  136. 777
  137. [root@localhost ~]#
  138. (5)以域为单位
  139. [root@localhost ~]# head -n 4 /etc/passwd|cut -d: -f -2,6-
  140. root:x:/root:/bin/bash
  141. bin:x:/bin:/sbin/nologin
  142. daemon:x:/sbin:/sbin/nologin
  143. adm:x:/var/adm:/sbin/nologin
  144. [root@localhost ~]#
  145. #-d 后面加上“间隔符号”
  146. (6)TAB 空格
  147. cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了。

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