返回顶部
首页 > 资讯 > 服务器 >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://lsjlt.com/news/17839.html(转载时请注明来源链接)

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

猜你喜欢
  • 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
  • Shell如何遍历包含空格的文本详解
    shell遍历文件 有时候要对某个文件夹下面的所有文件做同样的处理,比如对每个文件统计行数,这时用遍历文件的方式就很简单了。 $ for i in `ls`;do wc -l $i;done 55552 f123.txt...
    99+
    2022-06-04
    shell遍历文本内容 shell遍历文本 shell遍历文本所有行
  • shell脚本传参中包含有空格的参数
    目录问题描述原因分析解决方案拓展传递给函数的某个参数含有空格问题描述 调用并传参数给其他shell脚本,传的参数带有空格,被调用的shell脚本只取了这个参数的第一个单词。 代码如下...
    99+
    2023-03-22
    shell脚本传参有空格 shell传递带空格的参数
  • lxml怎么处理包含多个命名空间的XML文档
    在lxml中处理包含多个命名空间的XML文档,可以使用register_namespace()方法来注册命名空间,然后通过...
    99+
    2024-05-15
    lxml
  • 使用Shell怎么对包含空格的文本进行遍历
    这期内容当中小编将会给大家带来有关使用Shell怎么对包含空格的文本进行遍历,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。shell遍历文件有时候要对某个文件夹下面的所有文件做同样的处理,比如对每个文件统...
    99+
    2023-06-14
  • linux命令行下文件名中有空格怎么处理
    这篇文章主要介绍了linux命令行下文件名中有空格怎么处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Q:我在树莓派命令行模式下使用mplayer播放单首音乐,因为文件名中...
    99+
    2023-06-12
  • bat批处理实现的创建10个文件夹且文件夹再包含5个空文件夹
    这篇文章主要介绍“bat批处理实现的创建10个文件夹且文件夹再包含5个空文件夹”,在日常操作中,相信很多人在bat批处理实现的创建10个文件夹且文件夹再包含5个空文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-09
  • 从树中清除仅包含空文件夹的文件夹
    php小编小新在这里为大家介绍一个有关文件夹操作的小技巧——如何从树中清除仅包含空文件夹的文件夹。在日常的文件管理中,我们可能会遇到一些只包含空文件夹的文件夹,这些文件夹占用了存储空间...
    99+
    2024-02-09
  • shell脚本传参中包含有空格的参数怎么解决
    本篇内容主要讲解“shell脚本传参中包含有空格的参数怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell脚本传参中包含有空格的参数怎么解决”吧!问题描述调用并传参数给其他shell...
    99+
    2023-07-05
  • Golang 文件上传中如何处理空文件名?
    针对 go 文件上传中的空文件名,需采取以下步骤:检查 formfile 对象是否存在,若为空返回错误。创建自定义解析器,检查上传文件名称是否为空,若为空返回错误。 Golang 文件...
    99+
    2024-05-13
    文件上传 golang
  • SQL Server如何查找表名或列名中包含空格的表和列
    这篇文章给大家分享的是有关SQL Server如何查找表名或列名中包含空格的表和列的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如下案例所示:USE TEST; GO ...
    99+
    2024-04-02
  • 详解Shell 命令行批量处理图片文件名的实例
    Shell 命令行批量处理图片文件名 前言: 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的。并且文件名有长有短,很是糟心。因此,我想把这些文件给全部整理好,当然是用shell来处理啦! 说...
    99+
    2022-06-04
    文件名 命令行 批量
  • Laravel打包:如何处理包含ASP路径的文件?
    Laravel是一个流行的PHP框架,它提供了许多强大的功能和工具,使得开发人员可以更加轻松地开发和维护Web应用程序。其中一个强大的功能是打包,它可以将应用程序打包成单个文件,方便分发和部署。但是,在打包过程中,可能会遇到包含ASP路径的...
    99+
    2023-07-29
    path 打包 laravel
  • python PyVCF文件处理VCF文件格式实例详解
    目录引言PyVCF库的安装PyVCF库的导入PyVCF库详细介绍使用实例:_Record对象------位点信息的储存形式Reader对象------处理vcf文件,构建结构化信息综...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作