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

文章目录

    • Cut 命令和语法
      • 指定分隔符
      • 以字符的方式提取内容
      • 根据字节提取字符

上篇文章:嵌入式开发 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 与 “!“ 巧妙配合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果APP安装包ipa如何安装在手机上

苹果APP安装包ipa如何安装在手机上 苹果APP的安装比安卓复杂且困难,很多人不知道如何将ipa文件安装到手机上。以下是几种苹果APP安装在iOS设备的方式,供大家参考。 一、上架App Store 这是最正规的方式。虽然审核过程复杂、时间较长,且审核…

数据可视化组件有什么用?

数据可视化组件在数据分析中扮演着至关重要&角色。 通过图表、图形和交互式界面,数据可视化组件帮助将复杂的数据转化为易于理解的视觉展示。这种形式的数据呈现有助于发现模式、趋势和异常,并能够快速有效地传达数据的含义和洞察。 下面简单举两个…

不使用插件预览pdf等类型文件

前端使用window.open即可 var url"file/preview.do?path"response.path"&fileName"response.name; top.window.open(url,response.name,"_blank"); 接口代码如下 RequestMapping(value "/file/preview.do")public ResponseBod…

使用Visual Studio打造强大的程序,从添加第三方库开始

使用Visual Studio打造强大的程序,从添加第三方库开始 博主简介一、引言二、理解第三方库三、下载和安装第三方库四、示例代码和演示五、总结 博主简介 💡一个热爱分享高性能服务器后台开发知识的博主,目标是通过理论与代码实践的结合&#x…

【数字IC前端笔试真题精刷(2020)】大疆——数字芯片开发工程师B卷

声明:本专栏所收集的数字IC笔试题目均来源于互联网,仅供学习交流使用。如有侵犯您的知识产权,请及时与博主联系,博主将会立即删除相关内容。 笔试时间:2020年B卷 题目类型: 单选题(20 x 2’ = 40’)多选题(10 x 2’ = 20’)填空题(3’ x 5 = 15’)问答题(5’ x 5 …

【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

在 Linux 系统上安装Docker Compose

在Linux系统上安装Docker Compose需要以下步骤: 首先,确保已经安装了Docker。如果没有安装,请按照Docker官方文档进行安装。 打开终端或命令行界面,并使用以下命令下载Docker Compose二进制文件: sudo curl -L &quo…

SpringBoot项目中MVC使用--【JSB系列之010】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录Http协议是马冬梅Cookie机制Session机制Token MVC模型本章的专注内容UserController代码 ThymeleafLets GO!总结作业配套资源题外话 Http协议是马冬梅 HTTP简介 1. HTTP…

润和软件与华秋达成生态共创合作,共同推动物联网硬件创新

7月11日,在2023慕尼黑上海电子展现场,江苏润开鸿数字科技有限公司(以下简称“润开鸿”)与深圳华秋电子有限公司(以下简称“华秋”)签署了生态共创战略合作协议,共同推动物联网硬件生态繁荣发展。当前双方主要基于润开鸿的硬件产品及解决方案开…

完整的电商平台后端API开发总结

对于开发一个Web项目来说,无论是电商还是其他品类的项目,注册与登录模块都是必不可少的;注册登录功能也是我们在日常生活中最长接触的,对于这个业务场景的需求与逻辑大概是没有什么需要详细介绍的,市面上常见的邮箱注册…

混合背包(01+完全+多重背包大杂烩)

因为我们知道求解多重背包时&#xff0c;是将其进行二进制优化为01背包问题&#xff0c;那么我们就将01背包和多重背包看成一种情况&#xff0c;然后只要处理&#xff0c;完全背包和01背包问题即可&#xff08;详细看下方代码&#xff09; #include<bits/stdc.h> using n…

淘宝API接口应用场景及介绍

淘宝API&#xff08;Application Programming Interface&#xff09;是淘宝提供的一组接口&#xff0c;允许开发者通过编程方式与淘宝平台进行交互。淘宝API提供了各种功能和服务&#xff0c;包括商品详情接口&#xff0c;为商家和开发者提供了丰富的应用场景。以下是淘宝API详…

【ArcGIS Pro二次开发】(47):要素类追加至空库(批量)

本工具主要是针对国空数据入库而做的。 如果你手头已经整理了一部分要素类数据&#xff0c;但是数据格式&#xff0c;字段值可能并没有完全按照规范设置好&#xff0c;需要将这些数据按规范批量和库&#xff0c;就可以尝试用这个工具。 准备数据&#xff1a;标准空库、你已做…

kubernetes 系列教程之部署 BusyBox 容器

文章目录 在 Kubernetes 上部署 BusyBox 容器步骤一&#xff1a;创建 BusyBox Pod步骤二&#xff1a;进入 BusyBox 容器结论 Kubernetes版本 v1.19.14 在 Kubernetes 上部署 BusyBox 容器 BusyBox 是一个轻量级的 Unix 工具集合&#xff0c;它将许多常用的 Unix 工具打包在一个…

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Py…

SpringMVC的数据响应-直接回写json字符串

一般我们操作对象&#xff0c;将对象转变为json 这时导入json 转换工具的包 包1 包2-json数据绑定 包3 返回的就是json字符串你直接返回就行了 返回一个json格式的字符串 直接回写就加这个res.... 内部字符串要进行相应的转意 能够看到json字符串 能不能你封装对象&#xff0c…

Web3代币基本token概念

上文 HTML页面通过Web3JS连接智能合约并调用其中接口我们算是小试牛刀 用html的web3连接到我们的 智能合约。 至少确定了 我们的开发路线是没问题的 那么 我们要先了解代币这个内容 代币在以太坊中 可以说像公司的股份资产 可以说像美元 可以说像黄金等等 这个币圈建议大家不要…

【蓝图】p28-p29按键+鼠标点击实现开关门

p28-p29按键鼠标点击实现开关门 p28&#xff0c;创建门的蓝图类创建一个Actor注意&#xff08;当门的中心点不在边角上时&#xff09; 蓝图三个旋转区别按E键开关门使鼠标点击也可以开门可能遇到的bug问题 p28&#xff0c;创建门的蓝图类 actor和组件的区别、门的轴心点修改 …

【Ajax】笔记-取消请求

在进行AJAX(Asynchronous JavaScript and XML) 请求时&#xff0c;有时候我们需要取消正在进行的请求。取消请求可以帮助我们提高用户体验&#xff0c;病减少不必要的网络流量和服务器负载。 取消请求的方法 在AJAX请求中&#xff0c;我们可以使用以下方法来取消正在进行的请求…

golang 日志库logrus和lumberjack 日志切割库实践

package mainimport (log "github.com/Sirupsen/logrus""gopkg.in/natefinch/lumberjack.v2" )func main() {logger : &lumberjack.Logger{// 日志输出文件路径Filename: "/var/log/myapp/foo.log",// 日志文件最大 size, 单位是 MBMaxSiz…