0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux中cut命令的实用示例

马哥Linux运维 来源:huaweicloud 2024-08-05 15:14 次阅读

Linux command cut 用于文本处理。您可以使用此命令通过选择列从文件中提取部分文本。

本文提供了一些可在日常命令行活动中使用的 cut 命令的实用示例。

对于大多数示例,我们将使用以下测试文件。

$ cat test.txt
cat command for file oriented operations.
cp command for copy files or directories.
ls command to list out files and directories with its attributes.

1.选择字符列

要从文件中仅提取所需的列,请使用 -c 选项。以下示例显示文件 test.txt 每一行的第二个字符

$ cut -c2 test.txt
a
p
s

如上所示,字符 a、p、s 是 test.txt 文件每一行的第二个字符。

2.使用范围选择字符列

通过指定用 - 分隔的开始和结束位置,也可以从文件中提取字符范围。以下示例从名为 test.txt 的文件中提取每行的前 3 个字符

$ cut -c1-3 test.txt
cat
cp
ls

3.使用开始或结束位置选择字符列

可以使用 -c 选项将开始位置或结束位置传递给 cut 命令。

以下仅指定“-”之前的开始位置。此示例从 test.txt 文件中提取每行的第三个字符到结尾。

$ cut -c3- test.txt
t command for file oriented operations.
 command for copy files or directories.
 command to list out files and directories with its attributes.

以下仅指定“-”之后的结束位置。此示例从 test.txt 文件的每行开头提取 8 个字符。

$ cut -c-8 test.txt
cat comm
cp comma
ls comma

当您没有在“-”之前或之后指定数字时,将打印整行,如下所示。

$ cut -c- test.txt
cat command for file oriented operations.
cp command for copy files or directories.
ls command to list out files and directories with its attributes.

4. 从文件中选择特定字段

如果您想提取整个字段,而不是选择 x 个字符,您可以组合选项 -f 和 -d。选项 -f 指定要提取的字段,选项 -d 指定输入文件中使用的字段分隔符。

以下示例使用字段分隔符:(冒号)仅显示 /etc/passwd 文件中每行的第一个字段。在这种情况下,第一个字段是用户名。文件

$ cut -d':' -f1 /etc/passwd
root
daemon
bin
sys
sync
games
bala

5. 从文件中选择多个字段

您还可以从文件或标准输出中提取多个字段。下面的示例显示登录 shell 为“/bin/bash”的用户的用户名和主目录。

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6
root:/root
bala:/home/bala

要显示字段范围,请指定开始字段和结束字段,如下所示。在此示例中,我们选择字段 1 到 4、6 和 7

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7
root:x:0:0:/root:/bin/bash
bala:x:1000:1000:/home/bala:/bin/bash

6. 仅当一行包含分隔符时才选择字段

在我们的 /etc/passwd 示例中,如果您传递除 :(冒号)以外的其他分隔符,cut 将仅显示整行。

在以下示例中,我们将分隔符指定为 |(管道),并且 cut 命令仅显示整行,即使它没有找到任何具有 | 的行。(管道)作为分隔符。

$ grep "/bin/bash" /etc/passwd | cut -d'|'  -f1
root:x:0:0:root:/root:/bin/bash
bala:x:1000:1000:bala,,,:/home/bala:/bin/bash

但是,可以使用 -s 选项仅过滤和显示包含指定分隔符的行。

以下示例不显示任何输出,因为 cut 命令没有找到任何具有 | 的行。(管道)作为 /etc/passwd 文件中的分隔符。

$ grep "/bin/bash" /etc/passwd | cut -d'|' -s -f1

7.选择除指定字段外的所有字段

为了补充选择字段列表,请使用选项 -complement。

以下示例显示 /etc/passwd 文件中除字段 7 之外的所有字段

$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -s -f7
root:x:0:0:root:/root
bala:x:1000:1000:bala,,,:/home/bala

8.更改显示的输出分隔符

默认情况下,输出分隔符与我们在 cut -d 选项中指定的输入分隔符相同。

要更改输出分隔符,请使用选项 –output-delimiter,如下所示。在此示例中,输入分隔符是 :(冒号),但输出分隔符是 #(哈希)。

$ grep "/bin/bash" /etc/passwd | cut -d':'  -s -f1,6,7 --output-delimiter='#'
root#/root#/bin/bash
bala#/home/bala#/bin/bash

9. 将输出分隔符更改为换行符

在此示例中,cut 命令输出的每个字段都显示在单独的行中。我们仍然使用--output-delimiter,但值是$' ',这表明我们应该添加一个换行符作为输出分隔符。

$ grep bala /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'
'
bala
/home/bala
/bin/bash

10. 结合 Cut 与其他 Unix 命令输出

当你将它与其他一些 Unix 命令的 stdout 结合使用时,可以实现 cut 命令的强大功能。

一旦您掌握了我们上面解释过的 cut 命令的基本用法,您就可以明智地使用 cut 命令来解决您的许多文本操作需求。

以下示例说明如何从ps 命令输出中仅提取有用信息。我们还展示了如何在将最终输出提供给 cut 命令之前使用 grep 和 sed 过滤 ps 命令的输出。在这里,我们使用了剪切选项 -d 和 -f 我们在上面的例子中已经解释过了。

$ ps axu | grep python | sed 's/s+/ /g' | cut -d' ' -f2,11-
2231 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video
2311 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote
2414 /usr/bin/python /usr/lib/ubuntuone-client/ubuntuone-syncdaemon
2463 /usr/bin/python /usr/lib/system-service/system-service-d
3274 grep --color=auto python

链接:https://bbs.huaweicloud.com/blogs/368236

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11123

    浏览量

    207880
  • 文件
    +关注

    关注

    1

    文章

    551

    浏览量

    24559
  • 命令
    +关注

    关注

    5

    文章

    658

    浏览量

    21926

原文标题:掌握 Linux 中的 cut 命令:如何选择文件列的实用技巧与示例

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux系统unlink命令的使用

    Linux 删除文件,我们通常使用 rm 命令。除此以外,还有另外一个命令,可以用于删除文件和链接,这就是 unlink 命令。虽然它
    发表于 09-13 14:29 1953次阅读

    Linux教程:Linux Tee命令真实示例详细指南

    使用 Linux 终端时,您可能需要执行命令将一些数据写入文件并进一步处理其输出。命令是一个可以帮助您实现这一目标的强大实用程序tee。 这篇文章将为您提供有关tee命令的详细指南,并
    发表于 10-31 10:02 545次阅读

    Linux tcpdump命令示例 如何在Linux安装tcpdump

    在这里,我们将展示如何安装 tcpdump,然后讨论并介绍一些有用的命令以及它们的实际示例
    发表于 08-06 11:11 3388次阅读
    <b class='flag-5'>Linux</b> tcpdump<b class='flag-5'>命令</b><b class='flag-5'>示例</b> 如何在<b class='flag-5'>Linux</b><b class='flag-5'>中</b>安装tcpdump

    Linux与用户有关的命令

    Linux与用户有关的命令 Linux与用户有关的命令  passwd命令  出于系统安全考虑,Lin
    发表于 01-18 12:46 749次阅读

    Linux系统命令指南

    在“Linux 文件命令精通指南”,我们讨论了利用最基础和最常用 Linux 文件命令所需的基本信息。在本文中,我将对
    发表于 05-23 10:23 925次阅读

    Linux的关机命令浅析

    在本篇,我们会向你解释 shutdown、poweroff、halt 以及 reboot 命令。我们会解释清楚当你用那些可用的选项执行的时候它们实际做了什么。如果你想深入 Linux 服务器管理,那么为了有效和可靠的服务器管理
    发表于 04-11 09:00 967次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>的关机<b class='flag-5'>命令</b>浅析

    linux命令无法使用怎么办

    linux命令无法使用是怎么回事?问题分析
    发表于 05-28 09:02 1827次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>中</b><b class='flag-5'>命令</b>无法使用怎么办

    Linuxcut命令的格式和选项说明

    上;其二是连接两个或多个文件,如 cut f1 f2 》 f3 将把文件 f1 和 f2 的内容合并起来,然后通过输出重定向符 》 的作用,将它们放入文件 f3 。 2.命令格式 cut
    的头像 发表于 02-26 14:13 2366次阅读

    Linuxmail命令的使用教程分享

    在这里整理一下Linuxmail命令的使用。mail也是一个常用的命令,我们在很多地方都要用到它,比如定时把系统状况或日志发送到我们的邮箱里等等。
    发表于 03-25 16:01 9次下载

    如何在Linux上使用粘贴命令

    粘贴命令的各种选项和使用场景,并通过示例和输出演示如何使用它。 一、什么是粘贴命令? Paste命令是Unix和Linux操作系统上的一个实
    的头像 发表于 02-08 16:58 1681次阅读

    Linux的18个tar命令示例

    下面的示例命令将创建一个tar存档文件rumenz-14-09-12.tar对于目录/home/rumenz在当前工作目录。请参阅示例命令
    的头像 发表于 05-04 14:59 844次阅读

    Linux系统的10个常用的文本查看命令

    当你需要查看Linux系统的文本文件时,使用文本编辑器可能会比较繁琐,特别是当你只需要查看文件的内容时。这时,你可以使用Linux命令行下的文本查看工具来快速准确地查看文件。下面介绍
    的头像 发表于 06-24 11:44 1.1w次阅读

    linuxsource命令的用法

    Linux,source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。source命令可以用于读取并执行脚本文件
    的头像 发表于 11-08 14:35 1716次阅读

    linux查看物理接口的命令

    Linux操作系统提供了多种命令和工具来查看物理接口。在这篇文章,我们将详细介绍一些最常用和常见的命令,以及它们的用法和输出。 ifconfig
    的头像 发表于 11-16 16:48 913次阅读

    linux备份文件命令bak

    Linux系统,备份文件是非常重要的,它可以防止数据丢失和损坏的风险。为了达到安全的目的,我们经常需要备份文件。在这篇文章,我们将详细介绍Linux
    的头像 发表于 11-23 10:12 2003次阅读