【嵌入式开发 Linux 常用命令系列 7.4 -- awk 处理文件名,去除后缀只保留文件名】
请阅读【嵌入式开发学习必备专栏 】
文章目录
- awk 处理文件名,去除后缀只保留文件名
awk 处理文件名,去除后缀只保留文件名
在 shell 中, 可以使用 awk 来处理文件名,去除其后缀。下面是一个示例命令,它会将带有后缀的文件名作为输入,并输出没有后缀的文件名:
filename="example.txt"
basename=$(echo "$filename" | awk -F"." '{OFS="."; $NF=""; sub(/\.$/, "", $0); print}')
echo "$basename"
这个命令片段做了以下几件事情:
-F"."设置了输入字段的分隔符为点号(.),这是文件后缀的通常分隔符。OFS="."设置了输出字段的分隔符也为点号。$NF=""将最后一个字段(即文件的后缀)设置为空字符串。sub(/\.$/, "", $0)使用正则表达式匹配行末尾的点号并将其删除。print输出处理后的行,即没有后缀的文件名。
这将输出example(去掉了.txt后缀)。
另一种更简单的方法是使用rev和cut命令组合,这可能更容易理解,而且不需要awk:
filename="example.txt"
basename=$(echo "$filename" | rev | cut -d"." -f2- | rev)
echo "$basename"
这个命令的工作原理是:
- 使用
rev命令反转文件名字符串。 - 使用
cut命令以点号为分隔符,选取反转后的第二个字段到最后(即除去了第一个字段,也就是原始字符串的后缀部分)。 - 再次使用
rev命令反转结果回到正常的顺序。
例如,对于文件名example.txt,这也会输出example。
请注意,如果文件名中有多个点号,以上方法会去掉最后一个点号及其之后的部分。如果文件名中有版本号或多个后缀,可能需要其他方法来处理。
awk -F "\"" '{print$2}' auto_generate.h | awk -F"." '{OFS="."; $NF=""; sub(/\.$/, "", $0); print}'
相关文章:
【嵌入式开发 Linux 常用命令系列 7.4 -- awk 处理文件名,去除后缀只保留文件名】
请阅读【嵌入式开发学习必备专栏 】 文章目录 awk 处理文件名,去除后缀只保留文件名 awk 处理文件名,去除后缀只保留文件名 在 shell 中, 可以使用 awk 来处理文件名,去除其后缀。下面是一个示例命令,它会将带有后缀的…...
Linux重点思考(中)--端口/静态内存/负载/日志
这里写目录标题 知道的linux常用命令:查看指定端口进程netstat -pantunetstat -pantu|grep 22 静态运行内存free硬盘物理内存df和du当前负载uptime查看日志awk统计文件每一行单词sed 替换文件单词 知道的linux常用命令:查看指定端口进程 netstat -pantu…...
【Go】五、流程控制
文章目录 1、if2、switch3、for4、for range5、break6、continue7、goto8、return 1、if 条件表达式左右的()是建议省略的if后面一定要有空格,和条件表达式分隔开来{ }一定不能省略if后面可以并列的加入变量的定义 if count : 20;count < 30 {fmt.Println(&quo…...
数据开发-面试真题。
1. 自我介绍 2.在培训班的学过的项目经历 3.之前的工作经历,以及薪资 4.开始讲之前的项目经历 5.技术面试官开始提问。 kafka中进行数据分层,怎么从kafka中实时查询到相关的数据,一条或几条 6.java中的集合,以及io流 7.给定…...
如何使用免费的ChatGpt3.5
如何使用免费的ChatGpt 最近免费的gpt3.5很多都不怎么行了实在是太给力了尾声 最近免费的gpt3.5很多都不怎么行了 原因是什么呢?因为openai已经取消了免费的5刀赠送,那么这些人手上的免费的sses-key 用完后,就基本上全军覆没了,再…...
Kafka硬核干货
目录 Kafka Kafka Producer Kafka Consumer Consumer Offset Log Manager 如何实现高吞吐、低延迟...
分享几个可以免费使用的GPT网站吧
1. ChatGAI ChatGAI是一个界面简洁的AI平台,提供App和网页版,每日均有免费使用机会。 2. ChatGPT 本网站向大家开放了ChatGPT 3.5和4.0版本的免费体验,特别适合新用户。每天都有免费次数,响应迅速,注册便捷࿰…...
MySQL进阶-----前缀索引、单例与联合索引
目录 前言 一、前缀索引 1. 语法 2. 如何选择前缀长度 3. 前缀索引的查询流程 二、单列索引与联合索引 三、索引设计原则 前言 本期是MySQL进阶篇当中索引的最后一期内容,这里我们主要接着上一期继续讲解前缀索引、单例与联合索引。(上一期链接&…...
HTTP——Cookie
HTTP——Cookie 什么是Cookie通过Cookie访问网站 我们之前了解了HTTP协议,如果还有小伙伴还不清楚HTTP协议,可以点击这里: https://blog.csdn.net/qq_67693066/article/details/136895597 我们今天来稍微了解一下HTTP里面一个很小的部分&…...
Scala大数据开发
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Scala简述 在此,简要介绍 Scala 的基本信息和情况。 Scala释义 Scala 源自于英语单词scalable,表示可伸缩的、可扩展的含义。 Scala作者 Scala编…...
windows无法使用hadoop报错:系统找不到路径
在windows下安装hadoop-3.1.4,进行环境变量配置后,打开window命令行窗口测试hadoop命令,报错,如图所示: 方案:由于JAVA_HOME路径有空格导致,可修改hadoop下\etc\hadoop\hadoop_env.cmd文档中set JAVA_HOME以…...
从0配置React
在本地安装和配置React项目,您可以使用create-react-app这个官方推荐的脚手架工具。以下是安装React的步骤,包括安装Node.js、使用create-react-app创建React应用,以及启动开发服务器。 下载安装node.js运行以下命令,验证Node.js…...
File和IO流
1. File类常用方法 1.1 获取基本属性 • public String getName() :获取名称 • public String getPath() :获取路径 • public String getAbsolutePath():获取绝对路径 • public File getAbsoluteFile():获取绝对路径表示…...
2024系统架构师---解释器架构风格的概念与应用
解释器架构风格是一种软件架构模式,用于构建那些能够读取、解析并执行用户定义的命令或程序代码的系统。这种架构风格的关键在于提供一个运行时环境,它能够理解和执行预定义或用户定义的语言或指令集。通过这种方式,解释器模式能够为特定领域…...
makefile01
什么是makefile Makefile 文件描述了 Linux 系统下 C/C 工程的编译规则,它用来自动化编译 C/C 项目。一旦写编写好 Makefile 文件,只需要一个 make 命令,整个工程就开始自动编译,不再需要手动执行 GCC 命令。一个中大型 C/C 工程…...
计算机视觉之三维重建(6)---多视图几何(上)
文章目录 一、运动恢复结构问题(SfM)二、欧式结构恢复2.1 概述2.2 求解2.3 欧式结构恢复歧义 三、仿射结构恢复3.1 概述3.2 因式分解法3.3 总结3.4 仿射结构恢复歧义 一、运动恢复结构问题(SfM) 1. 运动恢复结构问题:通…...
蓝桥杯:全球变暖(python,BFS,DFS)(栈溢出的处理办法)
图论的经典题型,深度优先搜索和广度优先搜索都可以,但是本题推荐使用广度优先搜索(类似的题最好都用广度优先搜索),因为使用深度优先搜索会爆栈(栈溢出)。本篇博客两种方法都进行讲解࿰…...
Qt C++ | Qt 元对象系统、信号和槽及事件(第一集)
01 元对象系统 一、元对象系统基本概念 1、Qt 的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。 2、元对象系统是 Qt 对原有的 C++进行的一些扩展,主要是为实现信号和槽机制而引入的, 信号和槽机制是 Qt 的核心特征。 3、要使用元…...
Python 抽象类
在Python的抽象基类(ABC)中,方法并不是必须全部是抽象方法。抽象基类可以同时包含抽象方法和具体方法。抽象类中可以有抽象方法也可以定义具体方法 具体来说: 抽象方法: 使用abc.abstractmethod装饰器标记的方法是抽象方法。抽象方法没有方法体,只有方法签名。抽象方法必须在具…...
达梦数据库自动备份(全库)+还原(全库) 控制台
一 前提 1.安装达梦数据库DB8(请参照以前文章) 我的数据库安装目录是 /app/dmDB8 2.已创建实例 (请参照上一篇文章) 二 准备测试数据 三 自动备份步骤 1.开启归档模式 开启DM管理工具管理控制台 弹不出来工具的 输入命令 xhost 第一步 将服务器转换为配置状态 右键-&g…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
