我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

查看图片

执行的结果如下:

查看图片

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

查看图片

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

查看图片

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

查看图片

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

查看图片

上面的问题,可以通过将变量放入引号中("$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>”.

查看图片

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

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

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

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

查看图片

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

Shell怎么处理带空格的文件名

本篇内容主要讲解“Shell怎么处理带空格的文件名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell怎么处理带空格的文件名”吧!现在很多人命名的时候都喜欢用空格,例如“An Introdu
2023-06-09

Shell中处理包含空格的文件名实例

今天在处理文件时遇到个问题,当文件名包含空格时,for循环就出问题了。 例如,我在当前文件夹下建立3个文件名包含空格的文件: keakons-MacBook-Pro:test keakon$ touch "test 1"keakons-Ma
2022-06-04

Shell中如何处理包含空格的文件名

这篇文章主要介绍“Shell中如何处理包含空格的文件名”,在日常操作中,相信很多人在Shell中如何处理包含空格的文件名问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell中如何处理包含空格的文件名”的疑
2023-06-09

Linux查找处理文件名后包含空格的文件(两种方法)

当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替换处理掉这些空格呢? 方法1: 输入文件名后使用Tab键,如果使用Tab键后面出现 这样的可见字符,那么该文件名包含空格。当然,这个方法弊端很
2022-06-04

如何处理Shell脚本中带有空格的变量

小编给大家分享一下如何处理Shell脚本中带有空格的变量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在批量处理音频文件时候使用下面的脚本发现含有空格的文件名并不
2023-06-09

Linux如何查找处理文件名后包含空格的文件

这篇文章给大家分享的是有关Linux如何查找处理文件名后包含空格的文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替
2023-06-09

MySQL中的空格处理方法

目录1www.cppcns.com. mysql中的空格1.1 查询包含空格的字yKqwpKf段1.2 查询字段值以空格开始或结束的行1.3 查询字段值是否包含连续的空格2. 特殊空格的处理3. Java中处理MySQL空格问题4. 总结在
MySQL中的空格处理方法
2023-11-17

处理Shell脚本中带有空格的变量(bash脚本)

本篇主要介绍bash脚本中对于含空格文件处理方式。 在批量处理音频文件时候使用下面的脚本发现含有空格的文件名并不能被处理;#$1: 遍历的文件夹 rootDir=$1 cd $rootDir allAudioFile=$(find
2022-06-04

Python脚本处理空格的方法

最近小编遇到一个奇葩问题,就是上传代码时拷贝vs里面的代码不能直接粘贴,否则空格会不符合要求,怎么解决此问题呢?下面小编给大家分享我的解决方案,希望能够帮助到大家!去掉空格代码# -*- coding: utf-8 -*- '''打开del
2022-06-04

Linux之删除带有空格的文件

这篇文章主要介绍了Linux之删除带有空格的文件(不是目录),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。大家平时工作中对不带空格的文件接触较多。这样一来删除操作也是
2023-06-05

shell文件处理笔记之插入文本到文件的方法

前言 众所周知,如果在大多数服务器上,不会预先装上 ruby 或者 python 这些语言。这时,你要想操作一些文件,一个合理的选择就是使用 shell。也就是你在 terminal中输入的那些指令。本文给大家想写介绍了关于插入文本到文件的
2022-06-04

Linux Shell获取文件夹下的文件名方法

有时候需要获取某个文件夹下的所有文件名,可以用程序实现,但是打开IDE,编译klwYDx运行太麻烦,在linux服务器中通常不能打开IDE,此时可以用几行简单的shell命令来实现,结果保存到某个文
2022-06-04

shell 编程中空格的使用方法

1.定义变量时, =号的两边不可以留空格. eg: gender=femal————right gender =femal———?wrong gender= femal———?wrong 2.条件测试语句 [ 符号的两边都要留空格. eg:
2022-06-04

Golang高效处理空格字符的方法

Golang高效处理空格字符的方法在Golang编程中,处理字符串中的空格字符是一个常见的任务。空格字符可以是空格、制表符、换行符等,在文本处理和字符串操作中经常会遇到。本文将介绍一些高效处理空格字符的方法,并附上相应的代码示例。方法一
Golang高效处理空格字符的方法
2024-03-12

shell去掉文件中空行(空白行)的方法详解

本文详细介绍了使用shell去除文件中的空行的方法,学习下sed、awk、shell文件检测的方法,有需要的朋友可以作个参考。本节内容:shell去掉文件中空行 1,shell 去掉文件中的空行 cat filename | sed -e
2022-06-04

Linux下怎么处理包含空格和特殊字符的文件名

这篇文章主要讲解了“Linux下怎么处理包含空格和特殊字符的文件名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么处理包含空格和特殊字符的文件名”吧!我们经常会看到文件名和文件
2023-06-16

Linux shell 提取文件名和目录名的方法

${}[root@node01 ~]# file=/dir1/dir2/dir3/my.file.txt [root@node01 ~]# echo ${file#*/} dir1/dir2/dir3/my.file.txt删掉第一个 /
2022-06-04

linux命令行下文件名中有空格怎么处理

这篇文章主要介绍了linux命令行下文件名中有空格怎么处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Q:我在树莓派命令行模式下使用mplayer播放单首音乐,因为文件名中
2023-06-12

编程热搜

目录