【嵌入式开发 Linux 常用命令系列 7.4 -- awk 处理文件名,去除后缀只保留文件名】

这篇具有很好参考价值的文章主要介绍了【嵌入式开发 Linux 常用命令系列 7.4 -- awk 处理文件名,去除后缀只保留文件名】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


请阅读【嵌入式开发学习必备专栏 】


awk 处理文件名,去除后缀只保留文件名

在 shell 中, 可以使用 awk 来处理文件名,去除其后缀。下面是一个示例命令,它会将带有后缀的文件名作为输入,并输出没有后缀的文件名:

filename="example.txt"
basename=$(echo "$filename" | awk -F"." '{OFS="."; $NF=""; sub(/\.$/, "", $0); print}')
echo "$basename"

这个命令片段做了以下几件事情:

  1. -F"." 设置了输入字段的分隔符为点号(.),这是文件后缀的通常分隔符。
  2. OFS="." 设置了输出字段的分隔符也为点号。
  3. $NF="" 将最后一个字段(即文件的后缀)设置为空字符串。
  4. sub(/\.$/, "", $0) 使用正则表达式匹配行末尾的点号并将其删除。
  5. print 输出处理后的行,即没有后缀的文件名。
    这将输出 example(去掉了 .txt 后缀)。
    另一种更简单的方法是使用 revcut 命令组合,这可能更容易理解,而且不需要 awk
filename="example.txt"
basename=$(echo "$filename" | rev | cut -d"." -f2- | rev)
echo "$basename"

这个命令的工作原理是:文章来源地址https://www.toymoban.com/news/detail-844790.html

  1. 使用 rev 命令反转文件名字符串。
  2. 使用 cut 命令以点号为分隔符,选取反转后的第二个字段到最后(即除去了第一个字段,也就是原始字符串的后缀部分)。
  3. 再次使用 rev 命令反转结果回到正常的顺序。
    例如,对于文件名 example.txt,这也会输出 example
    请注意,如果文件名中有多个点号,以上方法会去掉最后一个点号及其之后的部分。如果文件名中有版本号或多个后缀,可能需要其他方法来处理。
awk -F "\"" '{print$2}' auto_generate.h | awk -F"." '{OFS="."; $NF=""; sub(/\.$/, "", $0); print}'

到了这里,关于【嵌入式开发 Linux 常用命令系列 7.4 -- awk 处理文件名,去除后缀只保留文件名】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • lv3 嵌入式开发-3 linux shell命令(文件搜索、文件处理、压缩)

    目录 1 查看文件相关命令 1.1 常用命令 1.2 硬链接和软链接 2 文件搜索相关命令 2.1 查找文件命令 2.2 查找文件内容命令 2.3 其他相关命令 3 文件处理相关命令 3.1 cut  3.2 sed 过滤 3.3 awk 匹配 4 解压缩相关命令 4.1 解压缩文件的意义 4.2 解压缩相关命令 cat - concatenate files and pri

    2024年02月10日
    浏览(63)
  • 2023-04-14 Linux连接WiFi常用命令,用命令打开、搜索、连接wifi,在buildroot 嵌入式系统上测试,用 wifi_start.sh WIFI名称 WIFI密码 命令格式连接

    一、ifconfig 命令查看打开的网卡  二、ifconfig -a 命令查看所有的网卡,包括关闭的。  三、打开WIFI命令:ifconfig wlan0 up ;关闭WIFI命令: ifconfig wlan0 down 。  四、wpa_cli 命令基本操作  五、iwlist wlan0 scan 搜索附件WIFI设备  六、用 wifi_start.sh WIFI名称 WIFI密码 命令格式连接WIFI  

    2024年02月14日
    浏览(45)
  • 嵌入式:ARM常用开发编译软件介绍

    ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。 他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器;应用函数库。ADS对汇编、C/C++、java支持的均很好,

    2024年02月06日
    浏览(68)
  • 嵌入式Linux:如何进行嵌入式Linux开发?

    目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 4、应用开发 嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方

    2024年01月25日
    浏览(80)
  • 关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    这篇文章是关于嵌入式开发的一些基本信息,供想入行的人参考。有一些作者本人的想法,以及来自外网的大拿的文章翻译而来,原文链接在此Learning Linux for embedded systems,再次感谢,支持原创。 普通C开发人员和嵌入式C开发人员之间的 基本区别在于 ,因为嵌入式C程序被设

    2024年02月03日
    浏览(71)
  • RK3588平台开发系列讲解(嵌入式AI篇)嵌入式AI的学习步骤

    沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将给大家介绍什么是嵌入式AI。

    2024年02月04日
    浏览(53)
  • 嵌入式算法开发系列之图像处理算法

    在嵌入式系统中,图像处理算法是一项重要的技术,用于实现各种视觉应用,如机器视觉、监控系统和智能设备。本文将探讨图像处理算法的原理、应用以及如何使用 C 语言来实现这些算法。 图像处理算法涉及处理数字图像的各个方面,包括图像增强、滤波、特征提取、目标

    2024年04月16日
    浏览(53)
  • 嵌入式开发:单片机嵌入式Linux学习路径

    SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内

    2024年02月15日
    浏览(57)
  • 嵌入式开发——文件系统部署rz、sz命令

    下载网址:https://ohse.de/uwe/software/lrzsz.html (1)报错显示在编译sz、rz命令时还依赖libnsl.so库,当前编译时找不到libnsl库; (2)libnsl是Unix/Linux系统下的一个开源C语言库,全称为“network services library”,提供了对许多网络服务程序的网络接口调用。其主要功能包括获取主机名、网络

    2024年02月07日
    浏览(64)
  • 嵌入式Linux开发教程汇总

    野火:https://doc.embedfire.com/products/link/zh/latest/linux/index.html 正点原子:http://47.111.11.73/docs/boards/arm-linux/index.html 百问网:http://download.100ask.net/books/Linux/ELADCM1/index.html 百问网:https://space.bilibili.com/275908810/channel/seriesdetail?sid=1714177 野火:https://space.bilibili.com/356820657/channel/seriesdeta

    2024年02月10日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包