【嵌入式开发 Linux 常用命令系列 6 -- 字符提取 cut 命令使用】

本文介绍了Linux中cut命令的使用,包括通过指定分隔符提取字段、按字符或字节位置提取内容,以及使用--complement选项进行反选等。示例展示了如何在date命令的输出中操作,这对于代码调试和日志分析非常有用。
摘要由CSDN通过智能技术生成

上篇文章:嵌入式开发 Linux 常用命令系列 5 – history 与 “!“ 巧妙配合

Cut 命令和语法

cut 命令的基本语法如下:

$ cut OPTION... [FILE]...

cut 的一些选项如下,cut 命令必须要指定选项才能执行
-f : 提取指定的字段,cut 命令使用 Tab 作为默认的分隔符。
-d : Tab 是默认的分隔符,使用这一选项可以指定自己的分隔符。
-b : 提取指定的字节,也可以指定一个范围。
-c : 提取指定的字符,可以是以逗号分隔的数字的列表,也可以是以连字符分隔的数字的范围。
–complement : 补充选中的部分,即反选。
–output-delimiter : 修改输出时使用的分隔符。
--only-delimited : 不输出不包含分隔符的列。

我们以如下 date 命令为例来进行说明。

[05:31:24]sam (*^~^*) ~> date
20230719日 星期三 17:31:26 CST

指定分隔符

最常用的选项是 -d-f 的组合,这会根据 -d 指定的分隔符和 -f 列出的字段来提取内容。
例如在这个例子中只打印出date的第一个字段,用的分隔符是空格。

[05:31:26]sam (*^~^*) ~> date | cut -d' ' -f1
2023

在下面这个例子中我们提取了多个字段。这里,我们使用空格( )分隔符从date 提取第1和第6个字段。

[05:33:30]sam (*^~^*) ~> date | cut -d' ' -f1,6
2023年 CST

要显示字段的某个范围,可以指定开始和结束的字段,中间用连字符(-)连接,如下所示:

[05:36:30]sam (*^~^*) ~> date | cut -d' ' -f5-6
17:36:34 CST

在代码debug的过程中,可能需要经常重新编译代码, 那么如何确认编译已经生效了呢?
可以通过下面方法:

echo "#define TIMESTAMPLE \"`date | cut -d' ' -f5-6`\"" > timestamp.h
cat timestamp.h
#define TIMESTAMPLE "17:18:45 CST"

在需要debug的 文件添加 timestamp.h 头文件,然后加上 print语句,如下:

#include "timestamp.h"

printf(TIMESTAMP);

要补全选择输出的字段(即反选),使用 --complement 选项。这一选项输出所有的字段,除了指定的字段。

[05:41:27]sam (*^~^*) ~> date | cut -d' ' --complement  -f5-6
20230719日 星期三

以字符的方式提取内容

-c 选项可以用来根据字符位置进行提取,注意空格和Tab也以字符来处理。

打印 date 命令的第1个字符,如下:

[05:44:50]sam (*^~^*) ~> date | cut -c 1
2

根据字节提取字符

使用-b选项通过指定字节的位置来选择一行的某一部分,使用逗号分隔每个指定位置,或用连字符 - 指定一个范围。
下面这个例子提取 date 命令的第1,2,3个字节:

[05:41:47]sam (*^~^*) ~> date | cut -b 1,2,3
202

上篇文章:嵌入式开发 Linux 常用命令系列 5 – history 与 “!“ 巧妙配合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公讲 ARM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值