Cut用法 和 awk的相关区别

来源:互联网 发布:凯撒大帝3mac 秘籍大全 编辑:程序博客网 时间:2024/05/17 11:58

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f


1.cut -b 3-5,8 选取第3-5个字节,和第8个字节。
2.cut -b 必须从小到大,cut -b 8,3-5 只会显示3-5字节。
3.cut -b -3:显示第1到第3
  cut -b 3-:显示第3到最后 
  cut -b -3,3- :显示全部,并不会重复中间的交集


4. cut -c 字符分界
[rocrocket@rocrocket programming]$ cat cut_ch.txt
星期一
星期二
星期三
星期四
[rocrocket@rocrocket programming]$ cut -b 3 cut_ch.txt




[rocrocket@rocrocket programming]$ cut -c 3 cut_ch.txt




当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开。例子如下:

[rocrocket@rocrocket programming]$ cat cut_ch.txt |cut -b 2




[rocrocket@rocrocket programming]$ cat cut_ch.txt |cut -nb 2


[rocrocket@rocrocket programming]$ cat cut_ch.txt |cut -nb 1,2,3






5.cut -d ' ' -f 1,2-,或者-3
  但是cut -d 只对单一空格的有效,多空格或者制表符就不行。
这个时候需要AWK
举例:
o@t ~/work/shell $ echo "a  b c" | cut -d " " -f2

o@t ~/work/shell $ echo "a  b c" | awk '{print $2}'
b

去空方法

1.  sed s'/  *//g' urfile
2.   tr -d " "
3.  awk -v OFS="" '$1=$1' ufile

原创粉丝点击