广告
返回顶部
首页 > 资讯 > 服务器 >Shell中处理包含空格的文件名实例
  • 998
分享到

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

空格文件名实例 2022-06-04 21:06:54 998人浏览 薄情痞子
摘要

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

今天在处理文件时遇到个问题,当文件名包含空格时,for循环就出问题了。

例如,我在当前文件夹下建立3个文件名包含空格的文件:

keakons-MacBook-Pro:test keakon$ touch "test 1"
keakons-MacBook-Pro:test keakon$ touch "test 2"
keakons-MacBook-Pro:test keakon$ touch "test 3"
keakons-MacBook-Pro:test keakon$ ls
test 1 test 2 test 3

然后for循环输出文件名:
keakons-MacBook-Pro:test keakon$ for file in `ls`;
> do echo $file;
> done
test
1
test
2
test
3

可以看到,文件名被分开了。

复制操作也不行:

keakons-MacBook-Pro:test keakon$ mkdir ../bak
keakons-MacBook-Pro:test keakon$ for file in `ls`; do cp "$file" ../bak; done
cp: bak is a directory (not copied).
cp: test: No such file or directory
cp: 1: No such file or directory
cp: test: No such file or directory
cp: 2: No such file or directory
cp: test: No such file or directory
cp: 3: No such file or directory

要解决这个问题,当然就要从单词分隔符着手。而bash中使用的是$IFS(Internal Field Separator)这个变量,内容为" nt":

keakons-MacBook-Pro:test keakon$ echo $IFS

keakons-MacBook-Pro:test keakon$ echo "$IFS" | od -t x1
0000000 20 09 0a 0a
0000004
keakons-MacBook-Pro:test keakon$ echo "" | od -t x1
0000000 0a
0000001

然后把它改成"nb",记得修改前先保存一下:

keakons-MacBook-Pro:test keakon$ SAVEIFS=$IFS
keakons-MacBook-Pro:test keakon$ IFS=$(echo -en "nb")

现在再执行上述命令就正常了:

keakons-MacBook-Pro:test keakon$ for file in `ls`; do echo $file; done
test 1
test 2
test 3
keakons-MacBook-Pro:test keakon$ for file in `ls`; do cp "$file" ../bak; done
keakons-MacBook-Pro:test keakon$ ls ../bak
test 1 test 2 test 3

最后,别忘了恢复$IFS:

keakons-MacBook-Pro:test keakon$ IFS=$SAVEIFS
keakons-MacBook-Pro:test keakon$ echo "$IFS" | od -t x1
0000000 20 09 0a 0a
0000004
keakons-MacBook-Pro:test keakon$ IFS=$(echo -en " nt")
keakons-MacBook-Pro:test keakon$ echo "$IFS" | od -t x1
0000000 20 0a 09 0a
0000004

--结束END--

本文标题: Shell中处理包含空格的文件名实例

本文链接: https://www.lsjlt.com/news/17839.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Shell中处理包含空格的文件名实例
    今天在处理文件时遇到个问题,当文件名包含空格时,for循环就出问题了。 例如,我在当前文件夹下建立3个文件名包含空格的文件: keakons-MacBook-Pro:test keakon$ touch "...
    99+
    2022-06-04
    空格 文件名 实例
  • Shell中如何处理包含空格的文件名
    这篇文章主要介绍“Shell中如何处理包含空格的文件名”,在日常操作中,相信很多人在Shell中如何处理包含空格的文件名问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell中如何处理包含空格的文件名”的疑...
    99+
    2023-06-09
  • Linux如何查找处理文件名后包含空格的文件
    这篇文章给大家分享的是有关Linux如何查找处理文件名后包含空格的文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替...
    99+
    2023-06-09
  • Linux查找处理文件名后包含空格的文件(两种方法)
    当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替换处理掉这些空格呢? 方法1: 输入文件名后使用Tab键,如果使用Tab键后面出现 这样的可见字符,那么...
    99+
    2022-06-04
    两种 空格 文件名
  • Shell怎么处理带空格的文件名
    本篇内容主要讲解“Shell怎么处理带空格的文件名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell怎么处理带空格的文件名”吧!现在很多人命名的时候都喜欢用空格,例如“An Introdu...
    99+
    2023-06-09
  • Shell处理带空格的文件名的方法
    现在很多人命名的时候都喜欢用空格,例如“An Introduction.doc”。但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是...
    99+
    2022-06-04
    空格 文件名 方法
  • Linux下怎么处理包含空格和特殊字符的文件名
    这篇文章主要讲解了“Linux下怎么处理包含空格和特殊字符的文件名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么处理包含空格和特殊字符的文件名”吧!我们经常会看到文件名和文件...
    99+
    2023-06-16
  • linux命令行下文件名中有空格怎么处理
    这篇文章主要介绍了linux命令行下文件名中有空格怎么处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Q:我在树莓派命令行模式下使用mplayer播放单首音乐,因为文件名中...
    99+
    2023-06-12
  • bat批处理实现的创建10个文件夹且文件夹再包含5个空文件夹
    这篇文章主要介绍“bat批处理实现的创建10个文件夹且文件夹再包含5个空文件夹”,在日常操作中,相信很多人在bat批处理实现的创建10个文件夹且文件夹再包含5个空文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-09
  • 详解Shell 命令行批量处理图片文件名的实例
    Shell 命令行批量处理图片文件名 前言: 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的。并且文件名有长有短,很是糟心。因此,我想把这些文件给全部整理好,当然是用shell来处理啦! 说...
    99+
    2022-06-04
    文件名 命令行 批量
  • Shell命令行批量处理图片文件名的示例分析
    小编给大家分享一下Shell命令行批量处理图片文件名的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell 命令行批量处理图片文件名前言:从网上下载了...
    99+
    2023-06-09
  • 如何实现批处理将文件侠内的文件名导入表格对应名称中
    这篇文章主要介绍“如何实现批处理将文件侠内的文件名导入表格对应名称中”,在日常操作中,相信很多人在如何实现批处理将文件侠内的文件名导入表格对应名称中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现批处理...
    99+
    2023-06-08
  • Python中优雅处理JSON文件的方法实例
    目录1. 引言2. 什么是JSON文件?3. 使用Python处理JSON文件3.1. 将JSON文件读取为字典类型3.2. 将JSON文件读取为Pandas类型3.3. 使...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作