目录
内容来源:
【GUN】【cut】指令介绍
【busybox】【cut】指令介绍
【linux】【cut】指令介绍
使用示例:
关于参数的特殊说明:
打印行中选定部分 - 输出每行的第n-m个字节
打印行中选定部分 - 输出每行的第n-m个字符
打印行中选定部分 - 输出每行的第n-m个字段(字段默认由制表符分隔)
打印行中选定部分 - 输出每行的第n-m个字段(修改分隔符为空格)
打印行中选定部分 - 只输出包含分隔符的行
打印行中选定部分 - 把指定的分隔符换成其他字符
常用组合指令:
指令不常用/组合用法还需继续挖掘:
内容来源:
GUN : Coreutils - GNU core utilities
busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客
【GUN】【cut】指令介绍
cut:打印行中选定的部分
cut 将每个输入文件中每行的选定部分写入标准输出,如果没有给出文件或文件名为' - ',则写入标准输入。
简介:
cut option... [file]...
在下面的表中,字节列表、字符列表和字段列表是一个或多个由逗号分隔的数字或范围(两个数字由破折号分隔)。字节、字符和字段从1开始编号。可以给出不完整的范围:-m表示` 1-m `;` n- `表示` n `到行尾或最后一个字段。链表元素可以重复、重叠,也可以按任意顺序指定;但是所选输入的写入顺序与读取顺序相同,并且只写入一次。
该程序接受以下选项。参见第2章[常见选项],第2页。
‘-b byte-list’
‘--bytes=byte-list’
选择只打印字节列表中列出的位置的字节。制表符和退格符的处理与任何其他字符一样;它们占用1字节。如果指定了输出定界符(参见--output-delimiter的说明),则在选定的字节范围之间输出该字符串。
‘-c character-list’
‘--characters=character-list’
选择只打印字符列表中列出的位置的字符。目前与-b相同,但国际化将改变这一点。制表符和退格符的处理与任何其他字符一样;它们占据了一个字符。如果指定了输出定界符(参见--output-delimiter的说明),则在选定的字节范围之间输出该字符串。
‘-f field-list’
‘--fields=field-list’
选择只打印字段列表中列出的字段。字段默认由制表符分隔。打印任何不包含分隔符的行,除非指定了--only-delimited (-s)选项。
awk 命令支持更复杂的字段处理,比如重新排序字段,以及处理与空白字符对齐的字段。默认情况下,awk使用(或丢弃)一系列空白字符来分隔字段,并忽略首尾空格。
awk '{print $2}' #打印第二个字段
awk '{print $(NF-1)}' #打印倒数第二个字段
awk '{print $2,$1}' #重新排序前两个字段
cut接受任意顺序的字段规范,但输出总是按照文件中遇到的顺序。如果没有awk,也可以使用join命令,像上面的awk那样处理空白字符。
join -a1 -o 1.2 - /dev/null #打印第二个字段
join -a1 -o 1.2,1.1 - /dev/null #重新排序前两个字段
‘-d input_delim_byte’
‘--delimiter=input_delim_byte’
使用-f时,使用输入delim字节的第一个字节作为输入字段分隔符(默认为TAB)。
‘-n’
不要拆分多字节字符(暂时没有操作)。
‘-s’
‘--only-delimited’
对于-f,不打印不包含字段分隔符的行。正常情况下,没有字段分隔符的行会逐字打印。
‘--output-delimiter=output_delim_string’
使用-f,输出字段由输出delim字符串分隔。-f的默认用法是使用输入定界符。当使用-b或-c来选择字节或字符偏移量的范围时(与字段的范围相反),output将字符串分隔在所选字节的不重叠范围之间。
‘--complement’
这个选项是一个GNU扩展。Select用于打印用-b、-c或-f选项选择的字节、字符或字段的补码。换句话说,不要打印通过这些选项指定的字节、字符或字段。当你有很多字段,并且想打印除少数字段外的所有字段时,这个选项很有用。
‘-z’
‘--zero-terminated’
用0字节而不是换行符分隔项(ASCII LF)。例如,将输入视为用ASCII NUL分隔的项目,并以ASCII NUL终止输出项目。此选项可以与` perl -0 `或` find -print0 `和` xargs -0 `一起使用,它们的作用相同,以便可靠地处理任意文件名(即使是包含空格或其他特殊字符的文件名)。
退出状态为零表示成功,非零值表示失败。
【busybox】【cut】指令介绍
NA
【linux】【cut】指令介绍
[root@localhost bin]# cut --help
用法:cut [选项]... [文件]...
Print selected parts of lines from each FILE to standard output.
如果没有指定文件,或者文件为"-",则从标准输入读取。
必选参数对长短选项同时适用。
-b, --bytes=列表 只选中指定的这些字节
-c, --characters=列表 只选中指定的这些字符
-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-f, --fields=LIST select only these fields; also print any line
that contains no delimiter character, unless
the -s option is specified
-n with -b: don't split multibyte characters
--complement 补全选中的字节、字符或域
-s, --only-delimited 不打印没有包含分界符的行
--output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入
的分界符
-z, --zero-terminated 以 NUL 字符而非换行符作为行尾分隔符
--help 显示此帮助信息并退出
--version 显示版本信息并退出
仅使用f -b, -c 或-f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔
开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次。
Each range is one of:
N N'th byte, character or field, counted from 1
N- from N'th byte, character or field, to end of line
N-M from N'th to M'th (included) byte, character or field
-M from first to M'th (included) byte, character or field
GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 cut 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreu
使用示例:
关于参数的特殊说明:
N 第N个字节、字符或字段,从1开始计数
N- 从第N个字节、字符或字段到行尾
N-M 从第N'到第M'(包含)个字节、字符或字段
-M 从第一个字节到第M个(包括)字节、字符或字段
打印行中选定部分 - 输出每行的第n-m个字节
-b 选项
指令: cut test1.txt -b 1
指令: cut test1.txt -b 2
指令: cut test1.txt -b 1-2
打印行中选定部分 - 输出每行的第n-m个字符
-c 选项
指令: cut test1.txt -c 1
指令: cut test1.txt -c 2
指令: cut test1.txt -c 1-2
指令: cut test1.txt -c 1,2
打印行中选定部分 - 输出每行的第n-m个字段(字段默认由制表符分隔)
-f 选项
指令: cut test1.txt -f 1
指令: cut test1.txt -f 2
指令: cut test1.txt -f 1,2
打印行中选定部分 - 输出每行的第n-m个字段(修改分隔符为空格)
-f / -d选项, -d选项修改默认分隔符,本示例中修改为1
指令: cut test1.txt -f 1 -d "1"
指令: cut test1.txt -f 2 -d "1"
指令: cut test1.txt -f 3 -d "1"
指令: cut test1.txt -f 4 -d "1"
指令: cut test1.txt -f 1,3 -d "1"
指令: cut test1.txt -f 1-3 -d "1"
打印行中选定部分 - 只输出包含分隔符的行
-s 选项
指令:cut test1.txt -f 1-3 -d "1" -s
打印行中选定部分 - 把指定的分隔符换成其他字符
--output-delimiter=output_delim_string 选项
指令: cut test1.txt -f 1-3 -d "1" --output-delimiter="||||"
常用组合指令:
NA