cut是shell内置命令,可以逐行读取文件,根据参数切割文本,获取指定列、字符、字节数据。
语法:cut [options] fileName
常用参数:
参数 |
介绍 |
-d |
指定分隔符,默认制表符。 |
-c |
以字符为单词进行分隔。 |
-b |
以字节为单位进行分隔,多字节字符将被拆分。 |
-n |
不分割多字节字符(汉字等),通常和-b参数一同使用。 |
-f |
指定获取第几列,通常和-d一同使用。 参数: n- :截取第n列(字符、字节)后面的数据。 n-m :截取第n到m列(字符、字节)之间的数据。 -m :截取第m列(字符、字节)前面的数据。 n1,n2,n3… :直接指定截取那些列(字符、字节)的数据。 |
举例:
# vim cut_data.txt 张三 32 抽烟 李四 42 喝酒 王五 31 烫头 赵六 34 吃饭
#!/bin/bash echo 数据 cat cut_data.txt echo 按照空格分隔,获取第一列数据(姓名) cut -d " " -f 1 cut_data.txt echo 按照空格分隔,获取第一、四列数据(姓名、爱好) cut -d " " -f1,4 cut_data.txt echo 按照空格分隔,获取第二列之前的数据(姓名、性别) cut -d " " -f -2 cut_data.txt echo 按照空格分隔,获取第二列之后的数据(性别、年龄、爱好) cut -d " " -f 2- cut_data.txt echo 按照空格分隔,获取第一至三列之后的数据(姓名、性别、爱好) cut -d " " -f 1-3 cut_data.txt echo 以字符为单位,获取姓名 cut -c 1-2 cut_data.txt echo 以字节为单位获取,获取姓名 cut -nb 1,2 cut_data.txt