• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > Shell处理带空格的文件名的方法

Shell处理带空格的文件名的方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了shell 文件名空格,shell 空格,shell 去除空格,shell 删除空格,shell 替换空格等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

现在很多人命名的时候都喜欢用空格,例如“An Introduction.doc”。但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是做为文件名的一部分。

看下面的脚本,我们可以了解的更清楚:

1

执行的结果如下:

2

实际上,当前目录的文件只有两个:

3

对于简单的文件名,如上例中,我们也可以通过 for i in *doc 这样简单的方法来获得文件列表。但是对于复杂的环境,如下图,我们如何获得这些列表呢?

4

有一个办法,通过 for i in "* *" 可以获得文件名的列表,但是一个很糟糕的列表,因为这个结果是一个两个文件名在一起的列表,我们完全无法拿来做后续的操作,如下图所示

5

通过 "*\ *" 这样的技巧可以避免上面所说的问题,但是在应用mv或其他操作时,还是会出现问题。

6

上面的问题,可以通过将变量放入引号中("$i")解决,通常情况下,引号中的空格可以被正确的处理。但这并不是一个恒久的解决办法,因为我们无法处理管道、子Shell等复杂的情况。

一个终极的解决办法就是设置IFS(the Internal Field Separator),不要用空格做为IFS,选择其他的符号。先来看看man page:

IFS: The Internal Field Separator that is used for word splitting after expansion and to split lines into words with the read built-in command. The default value is “<space><tab><new-line>”.

7

另外一个办法就是在对文件名进行处理之前,先将空格替换为特殊的自定义符号,然后在处理结束的时候,再替换回来

safename="$(echo name | sed 's/ /_-_/g')"

original="$(echo $safename | sed s'/_-_/ /g')"

其他还有一些方法,例如利用find命令。

8

</div>

您可能想查找下面的文章:

  • Shell处理带空格的文件名的方法
  • Shell中处理包含空格的文件名实例

相关文章

  • linux bash shell中case语句的实例
  • Shell脚本IF条件判断和判断条件总结
  • 浅谈:linux cron 计划任务常用符号小结
  • shell 中数学计算总结
  • Shell中实现“多线程”执行脚本文件完美解决方案
  • 一句话Shell命令关闭不需要的随机启动服务
  • 数值运算shell脚本
  • linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)
  • linux shell命令快捷获得系统帮助(一)[man-pages定义规范]
  • shell中冒号的特殊用法分享

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • linux shell发送Email邮件的方法详解
    • Linux下查找后门程序 CentOS 查后门程序的shell脚本
    • shell学习之printf命令格式化输出语句
    • shell脚本实现同时多台远程主机执行命令的代码分享
    • 远程SSH连接服务与基本排错经验总结
    • 获取两个日期间隔时间的shell脚本代码
    • Linux复制文件命令cp之使用解说
    • linux下保留文件系统下剩余指定数目文件的shell脚本
    • 验证用户输入的参数合法性的shell脚本
    • Linux rpm 命令参数使用详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有