精华内容
下载资源
问答
  • 主要介绍了Shell中处理包含空格文件名实例,需要的朋友可以参考下
  • 现在很多人命名的时候都喜欢用空格,例如“An Introduction.doc”。但是这种命名方式给Linux命令行工具...一个办法,通过 for i in “* *” 可以获得文件名的列表,但是一个很糟糕的列表,因为这个结果是一个两个文件
  • 比如说,吾要遍历目录,结果文件名有空格,使用for循环时就会出错。怎么办?  经过反复搜索、测试,终于找到了解决办法。对提供参考范例: https://blog.csdn.net/quantum7/article/details/103018288 ...

      比如说,吾要遍历目录,结果文件名中有空格,使用for循环时就会出错。怎么办?

      经过反复搜索、测试,终于找到了解决办法。对提供参考范例:

    https://blog.csdn.net/quantum7/article/details/103018288

     

      有人一看就FIRE了,大哥汝把老文章拿出来干什么?混分数?咱缺少分数说一声。

      大哥息怒,刚刚把整个脚本修改了,算是新生。

    展开全文
  • python脚本去除文件名里的空格

    千次阅读 2019-05-24 14:35:39
    下载的盗版周杰伦专辑,怕被河蟹,原始文件名里很多空格,写了个python脚本去除文件名里的空格 #coding=utf-8 #author:wangfeng #修改文件夹与文件的名称,去除里面的空格,使用方法,修改filepath,然后在控制台...

    下载的盗版周杰伦专辑,怕被河蟹,原始文件名里很多空格,写了个python脚本去除文件名里的空格
    #coding=utf-8
    #author:wangfeng
    #修改文件夹与文件的名称,去除里面的空格,使用方法,修改filepath,然后在控制台输入python changename.py即可
    import os
    import re

    filepath=unicode(“D:\测试\”,“utf-8”)#输入文件存放路径

    zimulus = os.listdir(filepath)

    for zimulu in zimulus:#改目录名
    oldpath = filepath+zimulu
    newzimulu = zimulu.replace(’ ‘,’’)
    newpath = filepath + newzimulu
    os.rename(oldpath,newpath)
    musicnames = os.listdir(newpath)
    for musicname in musicnames:#改目录下的文件名
    oldmusicpath = newpath +’\’ + musicname
    newmusicname = musicname.replace(’ ‘,’’)
    newmusicpath = newpath +’\’ + newmusicname
    os.rename(oldmusicpath,newmusicpath)

    展开全文
  • 经过对相关内容的查看,发现罪魁祸首是文件名中的空格。 下面在我的服务器上进行复现: 首先是touch一个名字里带空格的文件,这里我新建的是文件test 1,如下图。 随后是以常规命令chmod 777 test 1来对其进行权限...

      今天在写脚本的时候碰见了一个问题,在使用脚本对一些文件进行权限更改的时候,报出了意料之外的错误。经过对相关内容的查看,发现罪魁祸首是文件名中的空格。

    下面在我的服务器上进行复现:

    • 首先是touch一个名字里带空格的文件,这里我新建的是文件test 1,如下图。
      1
    • 随后是以常规命令chmod 777 test 1来对其进行权限更改操作,如下图。
      2
    • 可以看到,test 1被理解为了两个文件,所以操作失败,提示这两个文件不存在。对于这种情况,很明显需要加上引号来提示系统这是一个整体,或是加上\来对空格进行转义,如下图可以看到命令成功的被执行了。
      3
    • 但是,对于shell脚本来讲没有办法这么简单的处理,尤其是脚本中需要修改的文件是通过find找出来的变量。由此遇到困难开始想办法解决。

    关于解决此问题的思考:

    • 首先脚本中没有办法添加引号来使得变量被划为一个整体,所以单独操作时最常用的引号无法使用。
    • 其次是否可以通过shell里的字符串函数在文件名中加入转义符\来避免空格的影响,但是我觉得这个应该会影响处理速度。
    • 最后能否从根本上直接解决问题,即将文件名中的空格先替换为别的内容,待处理完后再替换为空格。这个说实话我感觉有点麻烦,而且最重要的是在替换时选择替换为什么内容?如果替换的内容本来就在文件名中存在,那么可能在替换回去时会改变原文件名,所以我觉得这个应该不大可行。

    最终解决方案:
      我在网上冲浪了一会,发现一个应该是效率最高改动最小的解决方案,即修改解释器的单词分隔符。这个东西在bash中被储存在变量$IFS中,初始值为\n\t,即空格、回车、tab。在bash处理内容时会根据这个变量来对字符串进行分割,所以对其中的内容进行修改删去空格,即可让bash在处理带空格字符串时,不进行分割,从而从根本上解决问题。当然在脚本执行后还得把$IFS改回去,避免之后出现问题。
      相比上文思考中的更改字符串,我觉得还是这个更方便效率高,所以决定使用这个方法对问题进行处理。

    • 这是我更改后的代码实例,其中把分隔符IFS改为了\n\b,待脚本执行完毕后再切回原来的\n\t,从而在不影响bash的情况下完成IFS的更改。
    #!/bin/bash
    #由于文件名中可能有空格,所以需要更改IFS
    
    SAVEIFS=$IFS
    IFS=$(echo -en "\n\b")
    
    for file in `find ~ -perm -002 -type f 2>/dev/null`
    do
        chmod o-wx "$file"
    done
    
    IFS=$SAVEIFS
    
    • 这是运行后的结果。可以发现,权限已经被成功的修改了。由此可以验证该写法,对于文件名包含空格的文件和文件名含\\的文件都可以成功的进行选取,从而正确的解决命令。
      5
    • 如果不更改IFS的话,就会出现下面这个问题,所以我认为该问题已解决。
      6
    展开全文
  • 在批量处理音频文件时候使用下面的脚本发现含有空格文件名并不能被处理; #$1: 遍历的文件夹 rootDir=$1 cd $rootDir allAudioFile=$(find $1 -name *\.mp3) for oneAudioFile in $allAudioFile do mv -f $...
  • 这是一个临时脚本文件。 """ import os print("**********************************************") path="E:\\FileTest"; #walk方法会返回一个三元组,分别是root、dirs和files。 #其中root是当前正在遍历的...
    # -*- coding: utf-8 -*-
    """
    Spyder 编辑器
    
    这是一个临时脚本文件。
    """
    
    import os
      
    
    print("**********************************************")    
    path="E:\\FileTest";
    #walk方法会返回一个三元组,分别是root、dirs和files。
    #其中root是当前正在遍历的目录路径;dirs是一个列表,包含当前正在遍历的目录下所有
    #的子目录名称,不包含该目录下的文件;files也是一个列表,包含当前正在遍历的
    #目录下所有的文件,
    for root,dirs,files in os.walk(path):
        print("目录:"+root)
        for name in files:
            print(name)
            print("文件重命名后:")
            print("@@@@@@@@@@@@@@@@@@@@@")
            NewFileName=name.replace(" ",'');
            NewFileName=os.path.join(root,NewFileName);
            print(NewFileName);
            os.rename(os.path.join(root,name),os.path.join(root,NewFileName))
    #        print("==================")
    #        print(os.path.join(root,name))
    #        print("==================");
         #   NewFileName=name.replace(' ', '');
         #   os.rename(name,NewFileName);   
        for name in dirs:
            print("文件目录:");
            print(os.path.join(root,name))
    
    

    在这里插入图片描述

    展开全文
  • 问题提出用之前的往xcode添加模板的脚本时报错: #!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "\n\b") PROJECT_TEMPLATES_PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform...
  • 在windows或者linux下,在复制,或者移动,或者制作深度学习训练集时,对于文件名中带有空格的文件处理会很棘手,不管用python还是c++都不好处理,这是可以用shell脚本。 #!/bin/bash SALVEIFS=$IFS IFS=$(echo -...
  • 但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是做为文件名的一部分。即环境变量 IFS(the Internal Field Separator)为值为 空格、Tab、...
  • 当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名有空格呢? 又怎么批量替换处理掉这些空格呢? 方法1: 输入文件名后使用Tab键,如果使用Tab键后面出现\ \ \这样的可见字符,那么该...
  • 要求:将E:\test目录下的多个文件重命名为特定格式的文件名 原文出自 http://bbs.csdn.net/topics/100120794 自己总结一下 步骤1:使用命令行 输入如图所示的命令 目的是将E:\test目录下的所以文件的文件名...
  • 使用find命令查找文件名中包含空格的文件。... 下面脚本可以替换文件中间的空格,用下划线替换空格,但是只能替换文件中间的空格,并不能替换文件名后面的空格。如下测试所示: find . -type f -nam...
  • rename 's/ /_/g' * 上述命令可以将当前文件夹内所有文件的名字中得所有空格替换为_。其中g代表所有,如果不加g,如果文件名字中多个空格,仅替换第一个。 参考: shell下批量出去文件名中的空格 ...
  • 在做iOS Flutter依赖引入的时候,需要去遍历Pods 工程中的文件,而这个工程下刚好一个名称带空格的文件夹。如下: 如下的脚本会出问题: #!/bin/bash function doSomething(){ for element in `ls $1` do dir_...
  • linux环境去掉文件名空格有一下两种方法: 方法一、使用$IFS来处理 old=$IFS; IFS=$'\n'; cd /home/arron/桌面/data/1月/1# for file in $(ls *) do  #unzip -d /home/arron/桌面/aa $file  ...
  • 使用如下命令改变单词分隔符变量,即可对带空格文件进行正常进行操作。 IFS=$(echo -en "\n\b")#注意这里\n前面没有空格 此时再次查看,可显示改变量已经改变: 操作完成后别忘了恢复变量: IFS=$(echo -en " \n\t...
  • rename 's/ /_/g' * 上述命令可以将当前文件夹内所有文件的名字中得所有空格替换为...其中g代表所有,如果不加g,如果文件名字中多个空格,仅替换第一个。 转载于:https://www.cnblogs.com/lwmp/p/7048504.html...
  • 在shell脚本中利用for循环批量重命名含有空格文件名的文件
  • 但是由于马虎,在配置多渠道打包定制渠道包的APK的文件名称的时候,在apk文件名称签名多敲了一个空格,因此出出现了FTP文件一直无法下载的悲剧,下面具体描述一下。在Jenkins成功的时候多渠道包之后,会转移编译好的...
  • 修正文件名中包含空格无法转换的问题:实际就是加了一句替换掉空格的处理bname = Replace(bname, " ", "") 因为命令行是以空格来分隔参数的 完整包见:http://download.csdn.net/detail/aaliwen/4810792
  • linux对文件批量操作时,比如如下命令(命令仅仅是举个...当文件名包含空格时,加入文件名为aaa bbb 传入cat的时候会当成aaa与bbb两个文件,所以结果自然是提示找不到文件 这种情况只要把$i替换成$(echo $i|sed 's/ /\
  • 在批处理(bat)中可能会遇到路径或者文件名称有空格,怎么办呢? 如: c:\Program Files\ 前端部署文档 1.x.pdf 加上双引号就行,如: cd /d "c:\Program Files\" copy .\"前端部署文档 1.x.pdf" d:\ ...
  • windows下重命名为.bat后缀,当前目录下所有文件名空格改成下划线..另外python脚本忘记怎么写了 ::═代码═开始═ @echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /a/b/s *.*') do ...
  • 如果文件中有空格,在执行shell脚本的时候可能会出错: ls 1 2.txt jus t a.txt 执行如下脚本: for file in `ls *.srt` do echo $file done 输出: 1 2.txt jus t a.txt.txt 所以要对空格进行处理: Shell 脚本...
  • 1.如果bat脚本文件需要参数。需要在脚本文件中使用 @echo off set delPath=%1 ...如果路径中有空格需要加上引号。例如 c:\\a b c  这种类型的文件夹名称就需要 “c:\\a b c ”或者c:\\"a
  • 脚本删除文件名中的空格

    千次阅读 2016-11-20 23:53:34
    用lua、python3来删除文件名中的空格
  • 最近在学Gradle, 使用git clone 命令下载了一些资料,但是文件名含有空格,看上去不是很舒服,因此想到用shell脚本对其进行批处理,去掉文件名中的空格,注意这里是把所有的空格全去掉 git clone ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,283
精华内容 37,313
关键字:

文件名有空格脚本