常用选项
cut常用的选项:
- -b,-bytes = list
使用此选项指定的字节列表剪切输入文件 - -c,-characters = list
使用此选项指定的字符列表剪切输入文件 - -f,-fields = list
使用字段列表剪切输入文件。要使用的默认字段选项卡。可以使用-d选项覆盖默认行为。 - -d,-delimiter = delimiter
使用用作字段的分隔符。如前所述,默认字段是选项卡,此选项覆盖此默认行为。
例子
Linux cut命令示例
free | grep Mem | sed 's/\s+/,/g' | cut -d , -f2 | 显示当前系统上的总内存 |
cat /proc/cpuinfo | grep "name" | cut -d : -f2 | uniq | 检索CPU类型 |
wget -q -O X http://ipchicken.com/grep '^ {8}[0-9]' X | sed 's/\s+/,/g' | cut -d , -f2 | 检索外部IP地址 |
cut -d : -f 1 /etc/passwd | 提取当前系统上的用户列表 |
ifconfig eth0 | grep HWaddr | cut -d " " -f 11 | 获取网络接口的MAC地址 |
who | cut -d \s -f1 | 列出登录到当前系统的用户 |
grep -w <n> /etc/services | cut -f 1 | uniq | 查看使用端口n的服务 |
使用列表
在这种情况下,列表可以由单个或者一系列字节、字符或者字段组成。例如,要仅显示第二个字节,列表将包含一个数字2。
因此:
- 2将仅显示从1的第二个字节,字符或者字段
- 2-5将显示从秒开始的所有字节,字符或者字段,并完成5th
- -3将在第4之前显示所有字节,字符或者字段
- 5-将生成以5th开始的所有字节,字符或者字段
- 1,3,6将仅显示1,第3和第6字节,字符或者字段
- 1,3-以第3个显示第一和所有字节,字符或者字段
按字符裁剪
我们使用cut的-c选项只打印cut.txt文件中特定范围的字符。
echo cut-command > cut.txt $cut -c 2 cut.txt u $cut -c -3 cut.txt cut $cut -c 2-5 cut.txt ut-c $cut -c 5- cut.txt command
按字节裁剪
我们知道单个字符的大小为1字节,因此使用-b选项执行之前的命令后的结果将完全相同:
$cut -b 2 cut.txt u $cut -b -3 cut.txt cut $cut -b 2-5 cut.txt ut-c $cut -b 5- cut.txt command
cut.txt是一个简单的ASCII文本文件。
只有在使用多字节编码文件比如UTF-8 Unicode文本时,才会出现差异。
例如:
$echo Ľuboš > cut.txt $file cut.txt cut.txt: UTF-8 Unicode text $cut -b 1-3 cut.txt Ľu $cut -c 1-3 cut.txt Ľub
按照字段裁剪
如前所述,“cut”命令使用的默认字段是TAB制表符。例如,让我们创建一个分隔符为TAB的文件。
提示:若要在命令行中插入制表符,请在单击制表符之前使用^V(CTRL+V)
$echo "1 2 3" > cut.txt $echo "4 5 6" >> cut.txt $cat cut.txt 1 2 3 4 5 6 $cut -f2- cut.txt 2 3 5 6
上面的示例只打印了第2列和第3列,因为通用分隔符是TAB,而TAB被cut用作默认字段。
要确保使用TAB制表符而不是空格, 使用od命令,请执行以下操作:
$echo "1 2" > tab.txt $echo "1 2" > space.txt $od -a tab.txt 0000000 1 ht 2 nl 0000004 $od -a space.txt 0000000 1 sp sp sp sp sp sp sp sp 2 nl 0000013
如果我们需要覆盖默认行为并指示cut命令使用不同的分隔符,-d选项将非常方便。
$echo 1-2-3-4 > cut.txt $echo 5-6-7-8 >> cut.txt $cat cut.txt 1-2-3-4 5-6-7-8 $cut -d - -f-2,4 cut.txt 1-2-4 5-6-8
我们需要使用-d选项的经典示例是:
从/etc/passwd文件中提取用户列表:
$cut -d : -f 1 /etc/passwd root daemon bin sys sync games man lp mail news uucp proxy www-data ...
使用complement排除数据
CUT命令允许我们在其输出中有选择地包含所需的数据。
如果我们需要选择要从输出中排除的数据,则complement选项可能会非常方便。
例如:
$echo 12345678 > cut.txt $cat cut.txt 12345678 $cut --complement -c -2,4,6- cut.txt 35
日期:2020-07-07 20:56:45 来源:oir作者:oir