Cut
外观
Cut 是一种在许多平台上可用的 Unix 命令行工具,用于从输入行中提取字段等。
Cut 的命令行选项又称开关
- -clist: 显示行的选定字符。
- -flist: 显示行的选定字段,默认情况下以制表符分隔。
- -dchar: 将字段分隔符从制表符切换到 char。
- -s: 不显示(“抑制”)不包含字段分隔符的行。
某些版本的 cut 的命令行选项又称开关
- -b: 显示行的选定字节。
- -n: 不分割多字节字符。
Cut 使用示例
- cut -f1 file.txt
- 显示每行的第一个字段,使用制表符作为字段分隔符。
- echo a:b | cut -d: -f2
- 显示每行的第二个字段,使用冒号作为字段分隔符。
- echo a b c | cut -d" " -f1,3
- echo a b c d e | cut -d" " -f1-3,5
- echo a b c | cut -d" " -f3,2,1
- 输出 "a b c",忽略 -f 之后反转的顺序。
- echo a b c d | cut -d" " -f2-
- 输出第二个和所有后续字段,即 "b c d"。
- echo abcd | cut -c3,4
- 不按字段处理,而是按字符处理。因此,输出 "cd"。
- echo abcdefgh | cut -c1-3,6-8
- 输出 abcfgh
Cut 领域中类似工具的使用示例
- echo a b|awk '{print $2}'
- 显示 "b",以任意数量的制表符或空格分隔字段。因此,对于 awk,"b" 是第二个字段,而对于 cut -d" ","b" 是第三个字段。
- echo a b|awk '{print $2 $1}'
- 显示 "ba",保留字段指定的顺序。
- echo a b|sed "s/ */ /g" |cut -f2 -d" "
- 显示 "b"。使用 sed 将空格序列首先压缩成单个空格。
Cut 受以下限制
- 无法指定“一个或多个空格”或类似的字段分隔符。
- 无法更改输出中字段的顺序。
注意:有些人发现 awk 或 gawk 能够满足 cut 限制过于严格的需求。
GNU cut for MS Windows 的版本可从 GnuWin32 项目 以及 Cygwin 获取。
- GNU Coreutils 在 gnu.org 上
- Unix cut(1) 手册页 在 man.cat-v.org 上
- 维基百科关于 Cut 的文章。