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 ‘‘ #以空格进行分割,且是一个空格
缺点: 有的时候分隔符很难确定
linux cut命令