cut命令在Linux和Unix中的作用是从文件中的每一行中截取出一些部分,并输出到标准输出中。我们可以使用cut命令从一行字符串中于以字节,字符,字段(分隔符)等单位截取一部分内容出来。
1.命令格式:
2.命令功能:
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
3.命令参数:
1 2 3 4 5 6 7
| -f, 提取指定的字段,cut 命令使用 Tab 作为默认的分隔符。 -d, Tab 是默认的分隔符,使用这一选项可以指定自己的分隔符。 -b, 提取指定的字节,也可以指定一个范围。 -c, 提取指定的字符,可以是以逗号分隔的数字的列表,也可以是以连字符分隔的数字的范围。 –complement, 补充选中的部分,即**反选**。 –output-delimiter, 修改输出时使用的分隔符。 --only-delimited, 不输出不包含分隔符的列。
|
4.使用实例:
实例1:打印出/etc/passwd文件每一行的第一个字段,用的分隔符是’:’
1 2 3 4 5
| # -d:指定分隔符;-f指定打印第几个字段 cut -d ':' -f 1 /etc/passwd 或 cut -d':' -f1 /etc/passwd cut -d: -f1 /etc/passwd
|
实例2:提取多个字段
1 2 3 4 5
| # 从 /etc/passwd 中包含字符串 /bin/bash 的行提取第一和第六个字段。 grep "/bin/bash" /etc/passwd | cut -d':' -f1,6 # 要显示字段的某个范围,可以指定开始和结束的字段,中间用连字符(-)连接,如下所示: # 显示1-4,6,7字段 grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7
|
实例3:要补全选择输出的字段(即反选),使用 –complement 选项。这一选项输出所有的字段,除了指定的字段。
1 2
| # 要补全选择输出的字段(即反选),使用 --complement 选项。这一选项输出所有的字段,除了指定的字段。 grep "/bin/bash" /etc/passwd | cut -d':' --complement -f2
|
实例4:指定输出的分隔符
1 2 3 4
| # 加上--output-delimiter选项,将输出分隔符指定为空格 cut -d: -f1,7 --output-delimiter ' ' /etc/passwd # 用分隔符让每一行打印一个字段,将 --output-delimiter 指定为 $'\n' 表换行。 grep "/bin/bash" /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'\n'
|
实例5:以字符的方式提取内容
1 2 3 4 5 6 7 8
| # 打印 context.txt 文件每一行的第一个字符 cut -c 1 content.txt # 打印 context.txt 文件每一行的第一至七个字符 cut -c 1-7 content.txt # 提取第二个到最后一个字符 cut -c 2- content.txt # 提取第一到第四个字符 cut -c -4 content.txt
|
实例6:根据字节提取
1 2 3 4 5
| # 使用-b 选项通过指定字节的位置来选择一行的某一部分,使用逗号分隔每个指定位置,或用连字符 - 指定一个范围 # 提取 content.txt 文件每一行的第一,二,三个字节 cut -b 1,2,3 content.txt # 列出一个范围 cut -b 1-3,5-7 content.txt
|