国际访客建议访问 Primers 编程伙伴 国际版站点 > Bash 教程 > cut 以获得更好的体验。

# Bash 的 cut 命令

cut OPTION... [FILE]...

!subtitle:功能

从文件的行中截取指定的部分。

!subtitle:类型

可执行文件(/usr/bin/cut),属于 coreutils

!subtitle:参数

  • OPTION 选项:

    • -b, --bytes=LIST - 要截取的字节

    • -c, --characters=LIST - 要截取的字符

    • -d, --delimiter=DELIM - 使用 DELIM 作为字段分隔符,而不是 TAB

    • -f, --fields=LIST - 要截取的字段

    • -n - 防止截断多字节字符(无效,被忽略)

    • --complement - 对选取的字节、字符、字段进行补全

    • -s, --only-delimited - 不要打印不含分隔符的行

    • --output-delimiter=STRING - 打印输出时用 STRING 代替分隔符

    • -z, --zero-terminated - 以空字符(\0)作为行的结尾,而不是换行符(\n

    • --help - 显示当前帮助

    • --version - 显示版本

  • FILE - 文件列表;- 表示读取标准输入

# 示例

$ cat 1.txt
id,name,age,city
1,Alice,23,London
2,Bob,31,Paris
3,Carol,27,Tokyo
$ cut 1.txt -c 1-10 1.txt       # 截取 1 至 10 字符
id,name,ag
1,Alice,23
2,Bob,31,P
3,Carol,27
id,name,ag
1,Alice,23
2,Bob,31,P
3,Carol,27
$ cut -d ',' -f 2,3 1.txt       # 逗号作为分隔符,截取 2,3 字段
name,age
Alice,23
Bob,31
Carol,27

# 推荐阅读

# 手册

CUT(1)                           User Commands                          CUT(1)

NAME
       cut - remove sections from each line of files

SYNOPSIS
       cut OPTION... [FILE]...

DESCRIPTION
       Print selected parts of lines from each FILE to standard output.

       With no FILE, or when FILE is -, read standard input.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -b, --bytes=LIST
              select only these bytes

       -c, --characters=LIST
              select only these characters

       -d, --delimiter=DELIM
              use DELIM instead of TAB for field delimiter

       -f, --fields=LIST
              select only these fields;  also print any line that contains  no
              delimiter character, unless the -s option is specified

       -n     (ignored)

       --complement
              complement the set of selected bytes, characters or fields

       -s, --only-delimited
              do not print lines not containing delimiters

       --output-delimiter=STRING
              use STRING as the output delimiter the default is to use the in‐
              put delimiter

       -z, --zero-terminated
              line delimiter is NUL, not newline

       --help display this help and exit

       --version
              output version information and exit

       Use  one,  and  only  one of -b, -c or -f.  Each LIST is made up of one
       range, or many ranges separated by commas.  Selected input  is  written
       in  the  same order that it is read, and is written exactly once.  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

AUTHOR
       Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

REPORTING BUGS
       GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
       Report any translation bugs to <https://translationproject.org/team/>

COPYRIGHT
       Copyright © 2023 Free Software Foundation, Inc.   License  GPLv3+:  GNU
       GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
       This  is  free  software:  you  are free to change and redistribute it.
       There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       Full documentation <https://www.gnu.org/software/coreutils/cut>
       or available locally via: info '(coreutils) cut invocation'

GNU coreutils 9.4                 April 2024                            CUT(1)
本文 更新于: 2025-11-27 09:38:14 创建于: 2025-11-27 09:38:14