shell 文件名分割,重命名移动批量文件

Linux下处理特殊字符文件名的安全方法与工程实践 在软件开发与系统运维中,文件命名规范是基础但关键的基础设施问题。从技术原理上看,Shell解释器对元字符(如空格、方括号、波浪号)有特殊解析规则,而Unicode编码和跨平台文件系统差异进一步增加了复杂性。这些底层机制决定了特殊文件名在命令行、脚本和版本控制系统中可能引发解析错误、路径截断或流程中断。其技术价值在于保障工程协作的稳定性和自动化流程的可靠性,特别是在持续集成/持续部署(CI/CD)和资产管线等场景中。通过掌握`ls -b`查看原始字节、`find`命令安全搜索以及`mv`配合引号操作等方法,开 阅读详情
2.文件名分割
1.分割出文件名和扩展名
file="sample.jpg"
name=${file%.*}
echo "File name is: $name"


输出:
File name is: sample
这里的${file%.*}的意思是:
用file的内容,从右边匹配字符串,这里是.*,说明
遇见'.'号结束,然后取出剩余的左边的部分作为结果
返回
extension=${file#*.}
echo "File extension is: $extension"

输出:
File extension is: jpg
这里的${file#*.}的意思是:
这和前面的那个相反,他是从左边开始匹配字符串,遇见'.'
后,把剩余的部分给截取下来作为结果返回


扩展:
这里一个%号和#号是短匹配,即第一次遇见时就截止
而可以使用%%和##做为长匹配


3.重命名和移动批量文件
1.当从相机中导出的文件名字不统一时,可以施行统一的更改
名字,如指定在某一天等
#! /bin/bash
# Filename:renameJpgAndPng.sh
    # Description: Rename jpg and png files

count=1
for img in *.png *.jpg
do
new="image-$count.${img##*.}" # to be like 'image-x.jpg'
mv "$img" "$new" 2> /dev/null


if [ $? -eq 0 ];
then 
echo "Renaming $img to $new."
let count++
fi
done


解释:定义一个数字变量,并读取当前文件夹下的所有以png和jpg
结尾的文件,变量new是新文件的格式,先是加image-前缀,
和$count,并进行长匹配,获取文件后缀名。然后通过mv命令来
移动重命名,若产生错误2(stderr),则重定向到/dev/null进
行回收垃圾。$? 的意思是上一次操作返回的结果,如果是0,则
代表操作成功,则输出转换成功提示
高效批量复制文件夹工具使用指南与实战 Python标准库中用于文件和目录操作的核心模块主要包括os和shutil。理解它们的功能与工作机制,是实现高效批量复制的前提。静态定义是指在配置文件中明确列出所有目标路径。适用于目标数量固定、结构清晰的场景。本章围绕“设置多个目标复制位置”展开,从典型应用场景、配置驱动的目标管理、并行写入控制到目标端前置检查机制,构建了一个完整的多目标复制解决方案。通过静态配置与动态发现机制,实现了灵活的目标地址管理;通过线程池和并发控制策略,提升了复制效率;通过前置检查机制,保障了复制任务的高成功率。 阅读详情

相关推荐

VM下安装linux虚拟机(ubuntu)和Intel parallel XE 2013(ifort2013)

VM下安装ubuntu和ifort2013跑自己的模式 由于新冠疫情,本人只能在家工作,很多重要的文件和程序都留在了办公室的linux机器上,工作无法正常开展。本来准备去办公室把机器搬回家不曾想学校所有门禁都关闭,不许进入,何时解禁也没有明确日期。科研不能等人,没条件科研只能想办法创造条件了。 以前在自己的笔记本(windows)上装过一次VM和ifort但无奈程序不能正常跑,所以之前就放弃了。本...

pangdahai3366的博客 1498

【Shell 命令集合 文件管理】Linux 拆分文件 split命令使用教程

split命令是Linux系统中的一个用于拆分文件的命令。它可以将一个大文件拆分成多个小文件,以便于传输、存储或处理。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1万+

Verilog的综合指令

Synopsys综合指令

烟花一时的博客 5445

【shell】shell字符串分割|文件分割

目录 一、字符串分割 1、awk分割 2、利用shell 中 变量 的字符串替换成空格分割 3、设置分隔符,通过 IFS 变量 4、利用tr 指令实现字符替换 二、文件分割 附录 【转】linux下awk内置函数的使用(split/substr/length) 四、gsub函数 五、正则表达式 一、字符串分割 1、awk分割...

小鱼菜鸟的博客 4830

基于python的超市历年数据可视化分析

包含:Order_Date Sales Quantity Profit year month。所有这些物品都在美国4个地区的49个州销售,来着793位客户的5009个订单。9994行,21列数据。

m0_74872863的博客 534

ESP32-S3 + TB6600驱动42步进电机:从基础接线到AccelStepper库平滑加减速实战

本文详细介绍了如何使用ESP32-S3开发板和TB6600驱动器控制42步进电机,从基础接线到利用AccelStepper库实现平滑加减速控制。内容涵盖硬件连接、基础驱动代码、AccelStepper库的安装与参数调优,以及高级技巧与故障排除,帮助创客实现工业级精准控制。

weixin_42632434的博客 282

【shell】shell字符串分割|文件分割|剪切|截取

目录 一、字符串分割 1、awk分割 2、利用shell 中 变量 的字符串替换成空格分割 3、设置分隔符,通过 IFS 变量 4、利用tr 指令实现字符替换 二、文件分割 附录 【转】linux下awk内置函数的使用(split/substr/length) 四、gsub函数 五、正则表达式 一、字符串分割 1、awk分割 把 ceph_12.2.1.centos.x86_64.tar.gz-2021-10-08-08后面的2021-10-08-08按“-”分割,取最后一个数..

我的笔记本 10万+

DrissionPage实战:5分钟搞定京东滑块验证码自动登录(附完整轨迹生成代码)

本文详细介绍了如何使用DrissionPage工具实现京东滑块验证码的自动化登录,包括环境配置、滑块缺口识别、拟人化轨迹生成算法及完整登录流程。通过物理运动学模型和智能识别技术,有效提升验证码破解成功率,适用于电商自动化场景。

weixin_29229055的博客 243

shell脚本之切分文件名与扩展名

注:区分好通配符和正则表达式的符号含义 通配符:一般只用于文件名匹配 1、*表示匹配任意长度的任意字符 2、? 表示匹配一个任意字符 3、[] 表示匹配括号中列出的字符中的任意一个 4、[a-d]表示aAbBcCd shell脚本都涉及修改文件名的操作。我们可能需要在保留扩展名的同时修改文件名、转 换文件格式(保留文件名的同时修改扩展名)或提取部分文件名。 实战演练(提取文件名): [root@Script-test ~]# var="index.html" [root@Script-test ~]# n

Virgo learning center 1399

PR控制以及使用PR控制用于单相离/并网逆变器

最近想学习一下并网逆变器,需要用到PR控制,全网找遍了许多学习资料,终于掌握的差不多了,在此做个记录,以及个人对PR(Proportional Resonant)控制的理解。在去年7月准备电赛的时候偶然看到有几篇讲解数字滤波器,第一次接触传递函数离散化,深刻被数字时代的数字方式折服,改改代码,就可以实现不同的截至频率,甚至不同阶数,而模拟方式还要改元器件。当时就感觉这玩意太他妈牛逼了,很想学懂它,奈何学不会呀。后面全身心做电赛,就忘了这事儿。直至最近学习PR控制,当初的感觉又回来了,一股劲儿吃下来了。

xht2403267701的博客 3万+

飞牛fnNAS搭建个人小账本

本文介绍了如何在飞牛NAS上部署ezBookkeeping个人记账应用。该开源工具支持多平台使用,具备双因素认证、多级分类等功能。文章详细讲解了Docker激活、镜像下载、容器部署等步骤,并展示了账户管理、交易记录等基础操作。同时指导用户通过ZeroTier实现远程访问,方便随时随地使用个人记账系统。该方案既保障了数据隐私,又提供了专业记账功能,适合对财务隐私敏感的用户。

dgnankai的专栏 782

linux shell之分割文件名和后缀

直接看例子吧 1、非贪婪操作 var=photo.jpg echo ${var%.*} 结果: photo echo ${var#*.} 结果: jpg 2、贪婪操作 var=sina.com.cn echo ${var##*.} 结果: cn echo ${var%%.*} 结果: sina ...

weixin_40746176的博客 2723

YOLOv11 损失函数解析

YOLOv11 在 YOLO 系列的持续演进中,通过 ​多模态损失协同优化、动态任务感知机制 和 ​超轻量化设计,实现了检测精度与推理效率的再突破。其损失函数设计融合了前沿的几何建模、分布学习与自监督技术,显著提升了复杂场景下的鲁棒性。

浩瀚之水的专栏 6702

shell脚本:for循环批量重命名含有空格文件名的文件

在shell脚本中利用for循环批量重命名含有空格文件名的文件

LoveSnowbear的博客 4121

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件

今天在学习shell脚本攻略第二章2.13 批量重命名和移动时,由于我的文件命令有的文件名字中出现空格,出现了许多问题,因此将解决问题的过程记录了下来,希望能够和大家交流学习,共同进步,谢谢!问题代码问题代码最终成功代码最终代码步骤一思路: 由于在shell中运行此脚本时,发现将找到的文件名按照空格分割开来,结果利用for循环时,每一个文件名被打散,例如'./Screenshot from 201...

weixin_39560029的博客 229

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

13MB批量重命名工具:小体积高可靠性的文件名处理方案

批量重命名是文件管理中最基础也最易出错的操作,其本质是基于文件元数据与字符串规则的精准映射。传统工具常因依赖外部组件、UI过度设计或正则门槛过高,导致预览失真、执行崩溃、路径超限等问题。而轻量级工具通过本地化PCRE2正则引擎、Windows API直读元数据、动态沙盒预览等技术,实现毫秒级响应与零网络依赖。它将高频操作压缩为可视化编号、拖拽式正则构造和排序锚点自由切换,显著降低认知负荷与误操作风险。适用于工程截图归档、医疗影像标准化、政务文档合规化等对稳定性与确定性要求严苛的场景,尤其适合NTFS长路径、

weixin_34080951的博客 309

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

文件命名规范化:从脚本崩溃到批量重命名的工程实践

文件命名是计算机文件系统管理的基础概念,它定义了文件在存储介质上的标识方式。其核心原理在于操作系统和应用程序通过文件名进行寻址与访问,不规范的命名(如包含特殊字符、空格或使用非标准编码)会导致路径解析错误和编码冲突。规范的文件命名具有重要的技术价值,它能确保自动化脚本的稳定运行、提升文件检索效率,并保障跨平台兼容性。在实际应用场景中,尤其在处理从互联网获取的、带有复杂描述和特殊符号的媒体文件时,建立统一的命名规范尤为关键。本文以处理包含“强制开麦”、“开麦舞台”等社群文化词汇的音频文件为例,探讨如何通过系统

weixin_30546189的博客 391

nginx 日志文件分割

因为nginx自身不带日志分割的功能 所以我们用shell脚本来完成这一任务 1.首先我来说明下nginx的主进程号: 如果nginx.conf 配置文件中使用了"pid /usr/local/nginx/nginx.pid;"指定了pid文件的存放路径,我们可以通过more这个pid文件来获得nginx的主进程号,或者使用 ps -ef | grep nginx 查看 ...

dikeyong8352的博客 94

Nginx日志分割shell脚本

Nginx日志分割 #!/bin/bash # This script run at 00:00 #save backup log days maxage=7 day=`date +%Y%m%d` hour=`date +%H%M` LOG_DIR="/opt/openresty/nginx/logs" # logrotate nginx mkdir -p ${LOG_DIR}/bac...

石头 427

shell脚本教学(二)——diff、rename、cut、sort、unip

1.批量重命名——rename 使用方法: rename 参数1 参数2 参数3 参数1:被替换的字符串 参数2:替换成的字符串 参数3:匹配要替换的文件模式 替换多个字符——【*】 脚本练习题:查找/etc下以【.conf】结尾的文件,将他们移动到/mnt,并命名为【.conf.月-日】,如:text.cong----->text.conf.3-14 ...

meltsnow的博客 734

linux shell脚本攻略第2章(一)

文章目录linux shell脚本攻略第2章(一)cat linux shell脚本攻略第2章(一) cat cat file1 file2 file3 ... filen。将文件1-n的内容打印出来。 cat -s file。将file中多行空白行变成一行。 cat -T file。将file的制表符显示为^|。 ...

执心灬 475

linux命令了解多少?shell脚本带你进阶

前言:最近项目开发中需要用到shell脚本来对文件进行处理,之前也没有写过shell脚本,借此机会学习了一下。需求是这样的,对下载好的数据文件进行重命名以及替换文件中的分割符,这个需求看似简单,但是对于没有接触过shell脚本的同志来说还是有点难整的,可能也是一通百度,然后也整出来了,但是发现用java程序调用脚本执行的时候又报错,非常的苦恼!但是就也是收获一个新知识新技能的机会。以前没接触过或者使用起来不流程,问题摆出,那就是你对这个不熟悉,得补课。无论是初次学,还是重修补课,都是工作经验和专业知识的积.

a_teacher_java的博客 330

Vimfiler.vim高级用法:SSH远程文件管理与批量操作技巧

Vimfiler.vim是一个功能强大的Vim文件管理器插件,它为Vim用户提供了完整的文件浏览和管理解决方案。这款强大的文件管理器不仅支持本地文件操作,还通过集成unite-ssh插件实现了SSH远程文件管理功能,让您可以直接在Vim中访问和管理远程服务器文件。本文将详细介绍Vimfiler.vim的SSH远程文件管理和批量操作技巧,帮助您提升工作效率。 ## 🚀 为什么选择Vimfiler

gitblog_00498的博客 741

Shell+Python构建自动化文本处理流水线:从批量TXT文件到结构化数据

在数据处理和内容管理领域,批量文本文件处理是一个常见且基础的需求,涉及文件操作、文本解析和数据清洗等核心概念。其原理在于通过脚本化与自动化技术,将重复性手动操作转化为可复用的流程,从而显著提升效率并减少人为错误。这一技术价值在于实现了文本处理的工程化,使开发者能够快速应对多变的文件格式与处理需求。典型的应用场景包括日志分析、文档归档、内容提取和报告生成等。本文聚焦于利用Shell与Python的组合优势,通过构建一个轻量级流水线,解决非结构化TXT文件的批量重命名、内容清洗与自动分类问题,其中涉及正则表达式

weixin_30851867的博客 374

Shell 第四篇

# 文件校验 md5sum filename # 按数...

weixin_33919950的博客 83
上一篇: linux shell——md5sum,sha1sum,sort,uniq
下一篇: shell中的大括号,小括号
清风乐逍遥
博客等级 码龄14年 42粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值