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 '' #以空格进行分割,且是一个空格

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

=================================

1 cut命令处理的基本数据单元

同大多数文本处理工具一样,cut也是以行为基本的数据单元的。

2 cut命令的用途

顾命思议,cut就是从行中cut出满足条件的数据,返回的是满足条件的数据。

3 cut的方式

2011年08月11日 星期四20:44:52 EDT

3.1 以字节cut

以字节为单位划分,字节从1开始编号。

date |cut -b 1-4 ------2011

3.2 以字符cut

以字符为单位进行划分,字符从1开始编号。

date |cut -c 1-5------2011年

3.3 以域cut

就是有一个分隔符,将以行分成多个部分,每个部分被称为一个域,这些域从1开始编号。

head -n5 /etc/passwd |cut -d : -f 1,3-5

-d指明分隔符,-f进行cut定位。

**************************************************************************************
当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想 要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。
**************************************************************************************
原文地址:https://www.cnblogs.com/macoffee/p/13541333.html