cut
命令用于从文本中提取子字符串,常用于处理文件内容。基本语法为 cut 选项 文件
,常用选项有 -d
指定分隔符、 -f
指定字段等。
1、基本概念
cut命令是Linux系统中一个非常实用的文本处理工具,它主要用于从文件中提取特定的部分内容并输出到标准输出,该命令通过指定的选项来切割文本,可以按照字节、字符或字段等方式进行切割。
2、常用选项及参数
-b:以字节为单位进行分割。cut -b 5 filename
表示从文件的每一行中提取第5个字节的内容。
-c:以字符为单位进行分割。cut -c 1-3 filename
表示从文件的每一行中提取前3个字符的内容。
-d:自定义分隔符,默认为制表符。cut -d',' -f2 filename
表示使用逗号作为分隔符,并提取每行的第二个字段。
-f:与-d一起使用,指定显示哪个区域。cut -d' ' -f1,3 filename
表示使用空格作为分隔符,并提取每行的第1个和第3个字段。
–complement:当指定时,此选项指示cut显示所有字节、字符或字段,除了所选的。
-s:默认设置是打印不包含分隔符字符的行,指定-s选项指示cut不打印不包含分隔符的行。
–output-delimiter:默认情况下,cut使用输入分隔符作为输出分隔符,指定–output-delimiter选项允许你指定不同的输出分隔符。
3、使用示例
按字节剪切:echo 'how-to geek' | cut -b 5
会输出字符串"how-to geek"的第5个字节,也就是"t"。
按范围剪切:echo 'how-to geek' | cut -b 5-11
会输出字符串"how-to geek"的第5个到第11个字节,也就是"to geek"。
按字段剪切:echo 'how-to geek' | cut -d' ' -f2
会输出字符串"how-to geek"的第2个字段(以空格为分隔符),也就是"geek"。
按字段剪切,使用自定义分隔符:echo 'how-to-geek' | cut -d'-' -f2
会输出字符串"how-to-geek"的第2个字段(以"-“为分隔符),也就是"to"。
按字段剪切,使用自定义分隔符,并且只显示包含分隔符的行:`echo -e ‘how-to-geek
howtogeek’ | cut -d’-‘ -f2 -s`会输出字符串"how-to-geek
howtogeek"的第2个字段(以"-“为分隔符),并且只显示包含”-“的行,也就是"to"。
按字节剪切,使用补集选项:echo 'how-to geek' | cut -b 1-3 --complement
会输出字符串"how-to geek"的除了第1个到第3个字节以外的所有字节,也就是"-to geek"。
4、注意事项
在处理非英文的文件或命令输出时,注意文件或命令输出的区域设置,在非英文语言中,剪切字符或字节可能会产生错误的输出,如果该字符的长度超过一个字节。
如果在使用cut命令时遇到了"bash: cut: command not found"的错误,那么可能需要安装coreutils包来获取cut命令,在基于Debian的系统中,可以使用sudo apt-get install coreutils
来安装;在CentOS 7中,可以使用sudo yum install coreutils
来安装;在CentOS 8中,可以使用sudo dnf install coreutils
来安装。
Linux中的cut指令是一个强大的文本处理工具,它提供了多种选项和参数来满足用户的不同需求,无论是按字节、字符还是字段进行剪切,都能轻松应对,也需要注意一些使用上的事项,以确保正确使用该指令。