批量修改含空格的文件名「Linux」

作者:@Xiaolin Ju
本文为作者原创,转载请注明出处:https://www.cnblogs.com/juking/p/11195459.html


目录

1、问题:文件批量重命名和处理文件名中的空格
2、原因分析及对策
3、 示例代码

1、问题:文件批量重命名和处理文件名中的空格

  • 如果文件名中有空格,在执行以下shell脚本的时候会出错。
  • shell 脚本
for filename in `ls`
do
   echo $filename
done
  • 执行结果:会将带空格的文件名,以空格作为截分,分两次(多次)输出。

2、原因分析及对策

  • 原因:Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符。默认是 space, tab, newline 来拆解读入的变量,然后对特殊字符进行处理,最后重新组合赋值给该变量。

  • 对策:只需要重置改变量,用完以后记得还原变量。

3、 示例代码

  • 例子1:写成一行
IFS_old=$IFS; IFS=$'\n';for name in `ls`; do mv $name LW_$name; done; IFS=$IFS_old;
  • 例子2:写成多行
IFS_old=$IFS
IFS=$'\n'

for name in `ls` 
do 
    mv $name LW_$name
done

IFS=$IFS_old

posted on   小林觉  阅读(2363)  评论(0编辑  收藏  举报

编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2015-07-16 Word中带圈数字

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示