linux cut 命令

cut:以某种方式按照文件的行进行分割

参数列表:
 -b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志
 -c    按字符选取
 -d 自定义分隔符,默认为制表符。
 -f 与-d一起使用,指定显示哪个区域。
                            that contains no delimiter character, unless
                            the -s option is specified
      --complement              补全选中的字节、字符或域
 -s, --only-delimited          不打印没有包含分界符的行
      --output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入
                                的分界符
范围控制:
    n:只有第n项
    n-:从第n项一直到行尾
    n-m:从第n项到第m项(包括m)
    -m:从一行的开始到第m项(包括m)
    -:从一行的开始到结束的所有项

cat /etc/passwd | cut -b1-3 #取每行的第1-3字字节

cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字节(后面的数字会先进行从小到大的排列) 需要事先知道具体字节,很容易出错

cat song.txt |cut -nb 1,2,3#当 -b 添加 -n 后则不会分割多字节 (我的系统是utf-8,所以需要用三个字节来表示一个汉字)

cat /etc/passwd | cut -c1,3 #适用于中文 

cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段
cat /etc/passwd | cut -d '' #以空格进行分割,且是一个空格

缺点: 有的时候分隔符很难确定