欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

macos cut 详解 示例 文心一言 chatgpt 有大用 有大大用

在macOS中,cut命令是一个非常实用的文本处理工具,它可以从文件的每一行中截取指定范围的字节、字符或字段,并将结果输出到标准输出或重定向到文件中。以下是cut命令的详细解析和示例。

cut命令详解

基本语法

bash复制代码

   cut (选项) (参数)

常用选项

  • -b:仅显示行中指定直接范围的内容。

  • -c:仅显示行中指定范围的字符。

  • -d:指定字段的分隔符,默认的字段分隔符为“TAB”。

  • -f:显示指定字段的内容。

  • --complement:补足被选择的字节、字符或字段。

  • --out-delimiter=<字段分隔符>:指定输出内容时的字段分隔符。

  • 描述 (DESCRIPTION)

  •        在 每个文件 FILE 的 各行 中, 把 提取的 片断 显示在 标准输出.

  •        -b, --bytes=LIST

  •               输出 这些 字节

  •        -c, --characters=LIST

  •               输出 这些 字符

  •        -d, --delimiter=DELIM

  •               使用 DELIM 取代 TAB 做 字段(field) 分隔符

  •        -f, --fields=LIST

  •               输出 这些 字段

  •        -n     (忽略)

  •        -s, --only-delimited

  •               不显示 没有 分隔符 的 行

  •        --output-delimiter=STRING

  •               使用 STRING 作为 输出分隔符, 缺省 (的 输出分隔符) 为 输入分隔符

  •        --help 显示 帮助信息, 然后 结束

  •       --version

  •               显示 版本信息, 然后 结束

  •        使用 且 只使用 -b, -c 或 -f 中的 一个 选项.  LIST 由 一个 范围 (range) 或 逗号 隔开的 多个 范围 组成.  范围 是 下列 形式 之一:

  •        N      第 N 个 字节, 字符 或 字段, 从 1 计数 起

  •        N-     从 第 N 个 字节, 字符 或 字段 直至 行尾

  •        N-M    从 第 N 到 第 M (并包括 第M) 个 字节, 字符 或 字段

  •        -M     从 第 1 到 第 M (并包括 第M) 个 字节, 字符 或 字段

  •        如果 没有 指定 文件 FILE, 或 FILE 是 -, 就从 标准输入 读取 数据.

参数

  • 文件:指定要进行内容过滤的文件。如果未指定文件,则cut命令将读取标准输入。

示例

示例1:使用-f选项提取指定字段

假设有一个名为test.txt的文件,内容如下:

复制代码

   No Name Mark Percent

   01 tom 69 91

   02 jack 71 87

   03 alex 68 98

要提取第一列(即No列),可以使用以下命令 :

bash复制代码

   cut -f 1 test.txt

默认分隔符不是空格,要使用默认分隔符为空格

代码为:    cut -d ' ' -f 1 test.txt


输出结果:

复制代码

   No

   01

   02

   03

示例2:使用-d选项指定字段分隔符

如果字段分隔符不是默认的TAB,而是其他字符(如逗号或分号),则需要使用-d选项指定。假设有一个名为test2.txt的文件,内容如下:

复制代码

   No;Name;Mark;Percent

   01;tom;69;91

   02;jack;71;87

   03;alex;68;98

要提取第二列(即Name列),可以使用以下命令:

bash复制代码

   cut -f2 -d";" test2.txt

输出结果:

复制代码

   Name

   tom

   jack

   alex

示例3:结合使用-b-c选项

虽然cut主要用于按字段(字段间由分隔符分隔)截取文本,但它也可以按字节或字符范围截取。例如,要打印test.txt文件中每行的前三个字符,可以使用:

bash复制代码

   cut -c1-3 test.txt

输出结果将是每行前三个字符的截取结果。

注意事项

  • 当处理包含特殊字符(如换行符、制表符等)的文本时,可能需要考虑使用其他文本处理工具(如awksed)或调整cut命令的选项以正确处理这些字符。

  • 如果文件编码与当前终端编码不一致,可能会导致cut命令无法正确解析文件内容。在这种情况下,可以尝试转换文件编码或使用其他文本处理工具。

总的来说,cut命令是macOS中处理文本数据时的一个非常有用的工具,它提供了灵活的选项来截取和输出文本的不同部分。


macos 中  cut 默认分隔符是什么 

在 macOS 中,cut 命令的行为与大多数类 Unix 系统中的行为一致。cut 命令用于从输入中剪切部分字符、字节或字段,并默认使用制表符(Tab)作为字段之间的分隔符。默认分隔符不是空格

如果你想要查看 cut 命令的具体用法和默认设置,可以通过运行 man cut 来查看其手册页。在没有指定 -d 选项的情况下,cut 将使用制表符作为字段分隔符。

例如,如果你想改变默认分隔符,你可以使用 -d 选项来指定一个不同的字符。比如,如果你的文件使用空格分隔数据,你可以这样使用 cut

sh
深色版本
1    cut -d' ' -f1,3 yourfile.txt

这里 -d' ' 指定了空格作为分隔符,-f1,3 表示提取第一个和第三个字段。

如果你想要验证默认分隔符,可以创建一个简单的测试文件,其中包含由制表符分隔的数据,然后使用 cut 命令不带 -d 选项来处理这个文件。例如:

  1. 创建一个名为 testfile.txt 的文件:

    sh
    深色版本
    1    echo -e "field1\tfield2\tfield3" > testfile.txt
  2. 使用 cut 命令提取第一个字段:

    sh
    深色版本
    1    cut -f1 testfile.txt

这将输出 field1,说明制表符确实是默认分隔符。



普通分类: