Cut:打印选定部分的行
cut将标准输出中每个输入文件的每一行的选定部分写入,或者如果没有给定文件或文件名为“-”,则写入标准输入。概要:
cut 选项… [文件]…
在下面的表格中,字节列表、字符列表和字段列表是一组或多个数字或范围(用短横线分隔的两个数字),由逗号分隔。字节、字符和字段从1开始编号。可以给出不完整的范围:-m表示“1-m”;’n-’表示“n”到行尾或最后一个字段。列表元素可以重复、重叠,并按任何顺序指定;但选定的输入按照读取的顺序写入,并且只写入一次。
选项
‘-b 字节列表’
‘–bytes=字节列表’
仅打印位于字节列表中的位置的字节。制表符和退格符与其他字符一样;它们占用1个字节。如果指定了输出分隔符(参见–output-delimiter的描述),则在选定字节范围内输出该字符串。
‘-c 字符列表’
‘–characters=字符列表’
仅打印位于字符列表中的位置的字符。目前与-b相同,但国际化将改变这一点。制表符和退格符与其他字符一样;它们占用1个字符。如果指定了输出分隔符(参见–output-delimiter的描述),则在选定字节范围内输出该字符串。
‘-f 字段列表’
‘–fields=字段列表’
仅打印位于字段列表中的字段。字段默认由制表符分隔。还可以打印任何不包含分隔符字符的行,除非指定了–only-delimited(-s)选项。
注意awk支持更复杂的字段处理,如重新排序字段和处理与空白字符对齐的字段。默认情况下,awk使用(并丢弃)运行空白字符来分隔字段,并忽略前导和尾随空白。
awk '{print $2}' # 打印第二个字段 awk '{print $(NF-1)}' # 打印倒数第二个字段 awk '{print $2,$1}' # 重新排序前两个字段
注意,尽管cut可以接受任意顺序的字段规范,但输出总是按照在文件中遇到的顺序。
在不太可能的情况下,如果awk不可用,可以使用join命令,以上述方式处理空白字符。
join -a1 -o 1.2 - /dev/null # 打印第二个字段 join -a1 -o 1.2,1.1 - /dev/null # 重新排序前两个字段
‘-d 输入分隔符字节’
‘–delimiter=输入分隔符字节’
使用-f,将输入分隔符字节的第一个字节用作输入字段分隔符(默认为制表符)。
‘-n’
不要拆分多字节字符(目前没有操作)。
‘-s’
‘–only-delimited’
对于-f,不要打印不包含字段分隔符字符的行。通常,任何没有字段分隔符的行都会原样打印。
‘–output-delimiter=输出分隔符字符串’
使用-f,输出字段由输出分隔符字符串分隔。默认情况下,使用输入分隔符。当使用-b或-c选择字节或字符偏移范围(而不是字段范围)时,在选定字节范围内非重叠范围之间输出输出分隔符字符串。
‘–complement’
此选项是GNU扩展。使用-b、-c或-f选项选择的字节、字符或字段的补集进行打印。换句话说,不打印通过这些选项指定的字节、字符或字段。当有很多字段并且想打印除几个之外的所有字段时,此选项很有用。
‘-z’
‘–zero-terminated’
用零字节而不是换行符(ASCII LF)分隔项目。即,将输入视为由ASCII NUL分隔的项目,并以ASCII NUL终止输出项目。此选项可以与“perl -0”、“find -print0”和“xargs -0”一起使用,以便可靠地处理任意文件名(即使其中包含空格或其他特殊字符)。
退出状态为0表示成功,非零值表示失败。