网易首页 > 网易号 > 正文 申请入驻

如何使用 Linux cut 命令

0
分享至

Linux命令允许您从文件或数据流中提取部分文本。它对于处理分隔数据(例如CSV 文件)特别有用。这是你需要知道的。

cut

剪切命令

该命令是Unix世界的老手,于 1982 年作为 AT&T System III UNIX 的一部分首次亮相。它在生活中的目的是根据您设置的标准从文件或流中截取部分文本。它的语法和它的用途一样简单,但正是这种联合的简单性使它如此有用。

cut

有关的Linux和BSD有什么区别?

以历史悠久的 UNIX 方式,通过与其他实用程序相结合,您可以为具有挑战性的问题创建优雅而强大的解决方案。虽然有不同的版本,但我们将讨论标准的 GNU/Linux 版本。请注意,其他版本,特别是BSD变体中的版本,不包括此处描述的所有选项。

cut

grep

cut

cut

您可以通过发出以下命令来检查计算机上安装了哪个版本:

剪切--版本

如果您在输出中看到“GNU coreutils”,那么您使用的是我们将在本文中描述的版本。所有版本都具有此功能,但 Linux 版本已添加了增强功能。

cut

切割的第一步

无论我们是将信息输入还是用于读取文件,我们使用的命令都是相同的。您可以对输入流执行的任何操作都可以在文件中的一行文本上执行, 反之亦然。我们可以告诉我们使用字节、字符或分隔字段。

cut

cut

cut

cut

要选择单个字节,我们使用(byte) 选项并告诉我们想要哪个或哪些字节。在这种情况下,它是字节 5。我们将字符串“how-to geek”发送到带有管道“|”的命令中,来自.

-b

cut

cut

echo

echo 'how-to 极客' | 切-b 5

该字符串中的第五个字节是“t”,因此通过在终端窗口中打印“t”来响应。

cut

要指定 范围 ,我们使用连字符。要提取字节 5 到 - 包括 - 11,我们将发出以下命令:

echo 'how-to 极客' | 切-b 5-11

您可以通过用逗号分隔它们来提供多个单个字节或范围。要提取字节 5 和字节 11,请使用以下命令:

echo 'how-to 极客' | 切-b 5,11

要获取每个单词的第一个字母,我们可以使用以下命令:

echo 'how-to 极客' | 切-b 1,5,8

如果您使用没有 第一个 数字的连字符,则返回从位置 1 到数字的所有内容。如果您使用没有 第二个 数字的连字符,则返回从第一个数字到流或行末尾的所有内容。

cut

cut

echo 'how-to 极客' | 切-b -6

echo 'how-to 极客' | 切-b 8-

对字符使用 cut

使用字符与使用字节几乎相同。在这两种情况下,必须特别注意复杂的字符。通过使用(character) 选项,我们告诉以字符而不是字节工作。

cut

-c

cut

echo 'how-to 极客' | 切-c 1,5,8

echo 'how-to 极客' | 切-c 8-11

这些工作完全符合您的预期。但是看看这个例子。这是一个六个字母的单词,因此要求返回从 1 到 6 的字符应该返回整个单词。但事实并非如此。少了一个字。要查看整个单词,我们必须询问从 1 到 7 的字符。

cut

回声“皮纳塔” | 剪切-c 1-6

回声“皮纳塔” | 剪切-c 1-7

问题是字符“ñ”实际上是由两个字节组成的。我们可以很容易地看到这一点。我们有一个包含这行文本的短文本文件:

猫 unicode.txt

我们将使用该实用程序检查该文件。使用(canonical) 选项为我们提供了一个十六进制数字表,右边是对应的 ASCII 。在 ASCII 表中,没有显示“ñ”,而是有代表两个不可打印字符的点。这些是十六进制表中突出显示的字节。

hexdump

-C

hexdump -C unicode.txt

显示程序(在本例中为 Bash shell )使用这两个字节来识别“ñ”。许多Unicode 字符使用三个或更多字节来表示单个字符。

如果我们要求输入字符 3 或字符 4,则会显示非打印字符的符号。如果我们要求字节 3和4,shell 会将它们解释为“ñ”。

回声“皮纳塔” | 剪切-c 3

回声“皮纳塔” | 剪切-c 4

回声“皮纳塔” | 剪切-c 3-4

使用带有分隔数据的 cut

我们可以要求使用指定的分隔符分割文本行。默认情况下,cut 使用制表符,但很容易告诉它使用我们想要的任何内容。“/etc/passwd”文件中的字段由冒号“:”分隔,因此我们将使用它作为分隔符并提取一些文本。

cut

分隔符之间的文本部分称为 fields,并且像字节或字符一样被引用,但它们前面有(fields) 选项。您可以在“f”和数字之间留一个空格,也可以不留。

-f

第一个命令使用(delimiter) 选项告诉 cut 使用“:”作为分隔符。它将从“/etc/passwd”文件的每一行中提取第一个字段。这将是一个很长的列表,因此我们使用( number) 选项仅显示前五个响应。第二个命令做同样的事情,但用于向我们显示最后五个响应。

head

-n

tail

剪切 -d':' -f1 /etc/passwd | 头 -n 5

剪切 -d':' -f2 /etc/passwd | 尾 -n 5

要提取选定的字段,请将它们列为逗号分隔的列表。此命令将提取字段一到三、五和六。

剪切 -d':' -f1-3,5,6 /etc/passwd | 尾 -n 5

通过包含在命令中,我们可以查找包含“/bin/bash”的行。这意味着我们只能列出那些将 Bash 作为其默认 shell 的条目。这通常是“普通”用户帐户。我们将要求从 1 到 6 的字段,因为第七个字段是默认的 shell 字段,我们已经知道它是什么——我们正在搜索它。

grep

grep "/bin/bash" /etc/passwd | 剪切 -d':' -f1-6

包含除一个之外的所有字段的另一种方法是使用该选项。这会反转字段选择并显示尚未请求的所有 内容 。让我们重复最后一个命令,但只要求输入字段 7。然后我们将使用该选项再次运行该命令。

--complement

--complement

grep "/bin/bash" /etc/passwd | 剪切 -d':' -f7

grep "/bin/bash" /etc/passwd | 剪切 -d':' -f7 --complement

第一个命令找到一个条目列表,但字段 7 没有给我们任何东西来区分它们,所以我们不知道这些条目指的是谁。在第二个命令中,通过添加选项,我们得到除了字段 7 之外的所有内容。

--complement

管道切割成切割

继续使用“/etc/passwd”文件,让我们提取字段 5。这是拥有用户帐户的用户的实际名称。

grep "/bin/bash" /etc/passwd | 剪切 -d':' -f5

第五个字段具有以逗号分隔的子字段。它们很少填充,因此它们显示为一行逗号。

我们可以通过将前一个命令的输出传递到另一个调用来删除逗号。第二个实例 使用逗号“,”作为其分隔符。( only delimited) 选项告诉抑制根本没有分隔符的结果。

cut

cut

-s

cut

grep "/bin/bash" /etc/passwd | 剪切-d':' -s -f5 | 剪切 -d',' -s -f1

因为根条目在第五个字段中没有逗号子字段,所以它被抑制了,我们得到了我们想要的结果——在这台计算机上配置的“真实”用户的名称列表。

输出分隔符

我们有一个小文件,其中包含一些逗号分隔值。此虚拟数据中的字段是:

  • ID: 数据库 ID 号
  • First:主题的名字。
  • Last:主题的姓氏。
  • 电子邮件:他们的电子邮件地址。
  • IP 地址:他们的IP 地址。
  • 品牌:他们驾驶的汽车品牌。
  • 型号:他们驾驶的机动车辆的型号。
  • 年份:他们的汽车制造年份。

小猫.csv

如果我们告诉 cut 使用逗号作为分隔符,我们可以像以前一样提取字段。有时您需要从文件中提取数据,但您不希望在结果中包含字段分隔符。使用 ,我们可以告诉 cut 使用什么字符——或者实际上是字符 序列——来代替实际的分隔符。

--output-delimiter

剪切 -d ',' -f 2,3 small.csv

cut -d ',' -f 2,3 small.csv --output-delimiter=' '

第二个命令告诉用空格替换逗号。

cut

我们可以更进一步,并使用此功能将输出转换为垂直列表。此命令使用换行符作为输出分隔符。请注意,我们需要包含“$”以使换行符起作用,而不是解释为两个字符的文字序列。

我们将使用过滤掉 Morgana Renwick 的条目,并要求打印从字段 2 到记录末尾的所有字段,并使用换行符作为输出分隔符。

grep

cut

grep 'renwick' small.csv | 剪切 -d ',' -f2- --output-delimiter=$''

老歌但戈尔迪

在撰写本文时,little cut命令即将迎来它的 40 岁生日,而我们今天仍在使用它并写下它。我想今天的删减文本和 40 年前一样。也就是说,当您手头有正确的工具时,会容易得多。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
撒贝宁一家四口开豪华房车,千岛湖露营,网友:像卡车一样带劲

撒贝宁一家四口开豪华房车,千岛湖露营,网友:像卡车一样带劲

柠檬有娱乐
2024-06-11 09:50:38
“白天高温晚上突然暴风雨”最近北方天气这是怎么了?

“白天高温晚上突然暴风雨”最近北方天气这是怎么了?

北青网-北京青年报
2024-06-13 20:05:06
网约车司机捡到乘客遗落的35万现金:没想法不可能,但不能拿这钱

网约车司机捡到乘客遗落的35万现金:没想法不可能,但不能拿这钱

澎湃新闻
2024-06-13 19:28:35
王思聪换头像承认孩子;黄一鸣挺直腰杆:蹭孩子父亲流量天经地义

王思聪换头像承认孩子;黄一鸣挺直腰杆:蹭孩子父亲流量天经地义

综艺拼盘汇
2024-06-13 22:24:05
安以轩澳门街头秀身材,整个人胖了一圈,最新生活状态曝光!

安以轩澳门街头秀身材,整个人胖了一圈,最新生活状态曝光!

花花lo先森
2024-06-13 10:45:21
意外!国足四任主帅都没完成的棘手任务,如今伊万却提前做到了

意外!国足四任主帅都没完成的棘手任务,如今伊万却提前做到了

罗掌柜体育
2024-06-13 17:31:38
38岁已婚女与37岁情人,在石凳子上发生关系,温存后被残忍杀害

38岁已婚女与37岁情人,在石凳子上发生关系,温存后被残忍杀害

胖胖侃咖
2024-06-08 08:00:08
“忍无可忍、无须再忍”,岛内有人发起联署罢免被大陆点名惩戒的于北辰

“忍无可忍、无须再忍”,岛内有人发起联署罢免被大陆点名惩戒的于北辰

环球网资讯
2024-06-13 10:22:09
港媒:中国科学家开发新技术,捕获美国潜艇南海撞山前散逸的尾流

港媒:中国科学家开发新技术,捕获美国潜艇南海撞山前散逸的尾流

天机调茶局
2024-06-12 21:18:59
欧盟“下手”:加征38.1%关税!上汽集团回应!中汽协也发声:坚决不能接受

欧盟“下手”:加征38.1%关税!上汽集团回应!中汽协也发声:坚决不能接受

每日经济新闻
2024-06-13 13:36:09
他是陈毅的女婿,不骄不躁脚踏实地,曾两度担任外交部副部长

他是陈毅的女婿,不骄不躁脚踏实地,曾两度担任外交部副部长

燕小姐说历史
2024-06-13 08:45:46
回顾:江西女子为庆祝分手,和好闺蜜“穿着清凉”去夜店跳舞

回顾:江西女子为庆祝分手,和好闺蜜“穿着清凉”去夜店跳舞

情感舍论汇
2024-06-13 23:11:12
29分钟2比0横扫进4强!国羽头号种子爆发,网友:可惜无缘巴黎

29分钟2比0横扫进4强!国羽头号种子爆发,网友:可惜无缘巴黎

体坛知识分子
2024-06-14 06:05:02
FMVP没含金量?那G3布朗下半场为什么要抢?之前早就发生过!

FMVP没含金量?那G3布朗下半场为什么要抢?之前早就发生过!

运筹帷幄的篮球
2024-06-14 07:45:16
太难了!河南告急!多地陷入干旱困境,许多河流里的水都抽干了…

太难了!河南告急!多地陷入干旱困境,许多河流里的水都抽干了…

火山诗话
2024-06-13 16:06:44
欧盟宣布加征关税后 特拉斯计划提高Model 3在欧洲售价

欧盟宣布加征关税后 特拉斯计划提高Model 3在欧洲售价

财联社
2024-06-13 20:18:24
红领巾事件持续升温,真相曝光!内幕揭秘!

红领巾事件持续升温,真相曝光!内幕揭秘!

趣说世界哈
2024-06-13 11:30:23
“夕发朝至”高铁动卧首次开进广州中心城区

“夕发朝至”高铁动卧首次开进广州中心城区

北青网-北京青年报
2024-06-13 18:09:14
反击开始!莫迪勾搭赖清德后,中方转守为攻,罕见点名“锡金段”

反击开始!莫迪勾搭赖清德后,中方转守为攻,罕见点名“锡金段”

莫将离
2024-06-13 22:37:50
引起热议“今年出生率肯定很高,出门溜达15分钟碰到6个孕妇”

引起热议“今年出生率肯定很高,出门溜达15分钟碰到6个孕妇”

滑稽斑马呀
2024-06-12 10:36:10
2024-06-14 09:14:44
前沿科技会
前沿科技会
关注科技与数码资讯
51文章数 100951关注度
往期回顾 全部

科技要闻

马斯克:明年千台人形机器人在特斯拉上班

头条要闻

亲绿网红在大陆旅游称"真的很喜欢这里" 气得绿营跳脚

头条要闻

亲绿网红在大陆旅游称"真的很喜欢这里" 气得绿营跳脚

体育要闻

乔丹最想单挑的男人走了

娱乐要闻

森林北报案,称和汪峰的感情遭受压力

财经要闻

私募大佬孙强:中国为什么缺少耐心资本

汽车要闻

升级8155芯片 新款卡罗拉锐放售12.98-18.48万

态度原创

手机
旅游
教育
房产
公开课

手机要闻

三星Galaxy S22推送6月安全补丁 修复59个安全漏洞

旅游要闻

山西文旅厅厅长与董宇辉拉家常:中午回家吃了饭

教育要闻

中专女生爆冷拿下数学竞赛全球12名:数学就像我的朋友,对服装设计也很感兴趣

房产要闻

再度告急!海口连续仨月住宅入市不足千套!竟有楼盘卖爆!

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版