精华内容
下载资源
问答
  • 2019-05-13 20:58:22

    单个文件批量替换或者修改文件内容,用vim相当舒爽。但是重复修改N个文件相同的内容就很烦了。这个时候就可以使用sed这个流编辑神器进行处理。sed作为一种流编辑器,它是文本处理中常用的工具,配合正则表达式使用一起使用,可谓江湖神器。
    简单了解了下sed原理,它在处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    如批量替换多个文件指定字符串:

    sed -i '.bak' 's/test_str/test/' `grep -rl test_str test_dir/*`
    
    • -i [extension],直接编辑文件选项,即直接修改文件内容,可以通过声明备份文件后缀备份修改的文件,如上述命令.bak即会备份一份修改前文件,后缀为.bak;如果不声明后缀或声明''零长度后缀名,则不会备份即将修改的文件(注意:Mac OSx必需声明备份文件后缀,否则会报sed: -i may not be used with stdin信息)

    • 's/test_str/test/',这里是文件修改模式,意图将字符串test_str替换为test

    • ````grep -rl test_str test_dir/*```,用 `` 声明 组合命令,这里递归搜索test_dir目录,并且列出文件内容包含test_str`字符串文件名称

    通过sed命令,一下解决了本人修改几十个文件需求,一个小时任务,用sed直接秒杀,怎一个爽字了得。当然除了本文批量替换多个文件内容用途外,sed命令还有很多其它用法,本文一方面为了记录在工作中遇到的问题,另一方面意在抛砖引玉。

    参考

    sed命令

    更多相关内容
  • 有时候我们想要训练时,拿到的样本,名称是很乱的,又或者我们想把多个文件夹的图片放到一个总的文件夹,但是各个文件夹内图片的名称都是一样的命名方法命名的。 网上能找到的,大多是只对一个文件夹下所有图片进行...

    有时候我们想要训练时,拿到的样本,名称是很乱的,又或者我们想把多个文件夹的图片放到一个总的文件夹,但是各个文件夹内图片的名称都是一样的命名方法命名的。

    网上能找到的,大多是只对一个文件夹下所有图片进行重命名的代码。

    这边实现的是,一个文件夹下有多个文件夹内图片的重命名。

     

    例如,这个数据集place100,里面有100个文件夹,代表100个类,然后每个类的文件夹打开又有1500张图:

    我们可以看出,airplane_cabin 和 airport_terminal 里面图片的命名是一样的。

     

     

     

    所以,我们希望可以在现有的图片名称前,加上这一类的名称,来区分不同类,这样把全部图片拷贝到一个文件夹时就不会出现重复命名的问题了。

    上代码:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    
    import os
    
    outer_path = '/home/lincanran/cls_exp/place100'
    folderlist = os.listdir(outer_path)          #列举文件夹
    
    for folder in folderlist:     
    	inner_path = os.path.join(outer_path, folder)
    	total_num_folder = len(folderlist)       #文件夹的总数
    	print 'total have %d folders' % (total_num_folder)   #打印文件夹的总数
    	
    	filelist = os.listdir(inner_path)        #列举图片
    	i = 0
    	for item in filelist:
    		total_num_file = len(filelist)       #单个文件夹内图片的总数
    		if item.endswith('.jpg'):
    			src = os.path.join(os.path.abspath(inner_path), item)           #原图的地址
    			dst = os.path.join(os.path.abspath(inner_path), str(folder) + '_' + str(i) + '.jpg')        #新图的地址(这里可以把str(folder) + '_' + str(i) + '.jpg'改成你想改的名称)
    			try:
    				os.rename(src, dst)
    				print 'converting %s to %s ...' % (src, dst)
    				i += 1
    			except:
    				continue
    	print 'total %d to rename & converted %d jpgs' % (total_num_file, i)
    

     

    具体操作:

    1.新建一个  rename.py  文件,然后把上面的代码复制进来,根据需要修改你要改的名称,然后保存。

    2.在终端输入:

    python rename.py 

    接下来就是可怕的刷屏时间了:

     

    更改完成!!!

    我们可以看到,名称前面加了这一类的名称加以区分!

     

     

     

     

    展开全文
  • 在linux系统下,当系统中存在多个相同命名的动态库(.so)时,ldconfig只为执行程序链接最后找到的库,而之后找到的库虽然通过“ifconfig -p”可以看到库路径信息,但不会被链接到执行程序。   在实际编程中,...

      在linux系统下,当系统中存在多个相同命名的动态库(.so)时,ldconfig只为执行程序链接最后找到的库,而之后找到的库虽然通过“ifconfig -p”可以看到库路径信息,但不会被链接到执行程序。

      在实际编程中,如果多个项目都用到某个动态库(比如libteaa.so,存在有多个并且在不同路径下),而且libteaa.so内的某个函数实现不同,部分程序编译或执行时将会出现异常情况。

    举两个简单例子:

    1. a程序需要调用libteaa.so内的add函数为int add(int a, int b),而b程序需要调用libteaa.so内的函数为int add(int a)。
    2. a程序需要调用libteaa.so内的add函数内部为return a + b,而b程序需要调用libteaa.so内add函数内部为return a + a + b。

      上述示例执行ldconfig后,如果链接的是a程序的libteaa.so库,那么b程序将会出错。针对这种情况,我们可以通过修改动态库名称来达到同时链接多个库,比如b程序的libteaa.so改为libtebb.so。

    接下来,我们通过以下内容了解如何修改动态库名称


    1. 查看系统中相同命名的动态库

    在这里插入图片描述

    图1 ldconfig -p查看同名称库路径

    参考图1, 执行ldconfig -p | grep libteaa,可以看到两个libteaa.so,但只有下面这个会被链接到执行程序(图2)。

    在这里插入图片描述

    图2 ldd 程序名查看链接库路径

    2. 查看库文件中是否包含库名称

    在这里插入图片描述

    图3 查看库文件内容

      首先执行hexdump -C libteaa.so > tmp,把文件内容保存入tmp文件中,然后vim打开文件可以看到文件偏移量、字节的十六进制、ASCII字符内容,参考图3。

      在文件中,搜索libteaa,在ASCll字符信息中如果有libteaa.so(库名称),表示动态库可以通过修改名称成为另一个动态库(解决同名问题)。


    3. 修改库文件名称

      修改库文件中的名称需要考虑对齐的情况,比如libteaa可以修改teaa内容,也就是四个字节,比如改为libtebb或libaabb。如果修改后的名称少于或超出原名称长度将会损坏名称之后的内容,造成库执行失败的情况。

      库名称修改方式为: sed -i “s/libteaa/libtebb/” libteaa.so,表示把libteaa.so中的libteaa替换为libtebb。这种情况只能在hexdump -C可以查到库名称的情况下完成修改,否则无效(未替换)。

    在这里插入图片描述

    图4 再次通过 ldconfig -p查看库路径

      库名称修改完成后,执行sudo ldconfig,可以看到libtebb.so库和库路径,但还没结束。现在的libtebb.so属于软连接文件,它链接的还是原来的libteaa.so。
      接下来执行 mv libteaa.so libtebb.so,把库名称与库文件内的名称同步,然后可以通过 -ltebb加载这个libtebb.so库了。

    4. 遇到的问题

      测试过程中,遇到部分库文件内未找到库名称的情况,一般发生在直接用gcc编译动态库。针对这个问题,可以通过Cmake脚本编译动态库。

    在这里插入图片描述

    图5 使用新库执行程序

      经过后续的测试,改名后的库与原来的库不冲突,算是解决同名库的一种方式吧!

    展开全文
  • python:批量修改文件名称

    千次阅读 2020-07-23 09:19:20
    python:批量修改文件名称 1、初步分析: 所谓批量修改文件名称就是:使用python中...​ 3、**第三步:**然后我们要拿到这目录文件下的所有文件名称,所有就要使用OS模块下的 listdir( ) 函数来获取当前目录文件下的

    python:批量修改文件名称

    1、初步分析:

    所谓批量修改文件名称就是:使用python中的OS模块对文件进行相关操作

    2、进一步分析

    ​ 1.**第一步:**该目录下必须是一系列有规律的文件名称,比如:说西游记第一集,西游就第二集等……这样的文件名称

    ​ 2**.第二步:**然后要对文件进行批量修改,那么批量修改就是使用循环的方式对有规律的文件名称进行修改

    ​ 3、**第三步:**然后我们要拿到这个目录文件下的所有文件名称,所有就要使用OS模块下的 listdir( ) 函数来获取当前目录文件下的所有文件名称,该函数返回的是一个包含所有文件名称的列表

    ​ 4、**第四步:**然后通过循环依次拿到每一个文件名称,拿到文件名称以后,要对有规律的文件名称中的相同字符使用 replace( ) 函数进行替换,替换完以后要返回新的文件名称

    ​ 5、**第五步:**最后,对每一个文件重命名,新的文件名称为 replace() 函数返回的新文件名称

    ​ 6、**第六步:**最后,运行程序即可

    3、案例

    # 【1】导入os模块
    import os
    
    # 【2】使用for循环,有规律的创建文件
    # 1、创建新文件夹,用于装批量修改的文件
    os.mkdir("三国演义")
    # 2、修改当前的文件目录为刚创建的文件夹(三国演义)
    os.chdir("三国演义")
    # 3、使用for循环,创建10个文件
    for i in range(1,11):
        # 【4】以写的方式创建文件夹
        file = open("三国第%d集.txt" %i,"w",encoding="utf-8")
        # 【5】关闭文件
        file.close()
    # 注意:以上操作要先执行,执行完以后要注释,否则会抛出异常
    
    # 【2】开始批量修改
    # 1、修改文件目录为包含需要修改的文件夹
    os.chdir("三国演义")
    # 2、获取“三国演义”该目录文件夹下的所有文件名称,并返回一个目录列表
    old_list = os.listdir("./")
    # 3、创建函数,用于替换和重命名文件名称
    def func(name):
        """
        该函数用于替换目录列表中的字符串,并修改文件的名称为新名称
        :param name: 目录列表下的文件名称
        :return: None
        """
    # 4、替换文件名称字符串的“三国”字符,为“新三国”,并返回一个新的字符串
    new_name = name.replace("三国","新三国")
    # 5、对当前文件重命名,命名为新字符串
    os.rename(name,new_name)
    # 6、使用map函数对列表中的字符串名称依次进行func函数中的操作
    ret = map(func,old_list)
    # 7、注意:使用map函数必须输出,否则不起作用
    print(list(ret))
    

    执行结果:
    在这里插入图片描述

    展开全文
  • //批量修改文件名称 import os dir = os.getcwd() dir = os.chdir(r'C:\Users\Administrator\Desktop\cupdata') j = 0 for file in os.listdir(dir): #os.listdir('.')遍历文件夹内的每文件名,并返回一包含...
  • 当我们运行一React Native项目的时候,React Native会启动一默认端口号为8081的本地服务,该8081的服务就是React Native项目的一本地服务器,用于提供JSBundle包和一些静态资源。这一切都是React Native帮...
  • 1.将所有需要合并的TXT整理到一文件夹中,切记,TXT合并最好每TXT内容头或尾留一行间距,因为合并...d:\txtmerge\111.txt 命令,然后就得到了一合并后的文件。 4.如果需要合并其他格式,将txt修改就可以了 ...
  • 网上关于这方面的设置方法挺的,但是比较杂乱也有些比较笨的人看不懂那些教程,我这里尽量写的精简和详细一些。第一步、打开【注册表编辑器】按下键盘的 Windows键 + R键会弹出一 运行 命令的窗口,在弹出的...
  • 批量修改文件夹下所有文件名称

    万次阅读 2018-03-12 13:51:27
    所需工具:cmd、excel、记事本一、利用cmd将文件夹下的内容全部输出假设要导出的内容在E:/graduate/pic下,输入...二、新建excel文件,将name.txt内容粘贴到excel中如下图所示:三、分列 1、选中有数据的列,单击 ...
  • maya更改一个或多个对象的名称,MAYA

    千次阅读 2020-12-30 19:49:06
    更改一个或多个对象的名称场景中不同对象的名称可以相同,但两个同级节点(具有相同父对象的节点)不能使用相同的名称。注意在节点和属性名称中,除下划线 (_) 和井号 (#) 之外,其他所有标点符号都是非法字符。更改...
  • 加Q16476582742019-07-09 10:183416自己先看看哦~在工具--共享工作区文档工作区网站是 Microsoft Windows SharePoint Services 网站,可集中一个或多个文档。不管是通过直接处理文档工作区副本,还是通过处理自己的...
  • Flutter 修改App的名称和图标

    万次阅读 2019-07-10 09:44:13
    文章目录Android修改名称和图标IOS修改名称和图标 Flutter新创建的项目默认的图标是Flutter icon,项目名称我们一般是英文的,但我们想让用户看到的app名称一般是中文的,所以我们就需要修改App的名称和图标。 ...
  • 之前都是单次修改,单次打包,可随着需求越来越,需要打的包也会越来越,单次打包费时费力,很明显已经不再适合,于是研究了一下,使用gradle成功实现了需要的功能,打包过程也变的更为简单。gradle是一基于...
  • powershell批量修改文件名称

    千次阅读 2019-04-20 16:20:48
    下面的代码能够给桌面“都彭”文件夹下的所有目录文件名称增加都“都彭”两字。 Get-ChildItem -Path F:\Desktop\都彭\ 获取这目录下的所有文件。增加recurse参数后能够对这目录进行递归获包含子目录的所有...
  • Qt 批量修改文件名称

    千次阅读 2020-04-21 18:23:44
    文件加下面有很的.jpg文件需要修改名称 如图所示: 都是王者农药的皮肤 进行重新命名 通过代码进行遍历文件夹下面的文件 代码如下: #include "MainWindow.h" #include <QApplication> #include <...
  • terminal 修改 文件名称

    千次阅读 2018-05-30 21:16:24
    rename abcdefg abc Linux中修改文件名,很多人甚至很Linux书会介绍说用mv命令,其实是mv只能修改单个目标的名称,真正修改文件名还是和windows一样,使用rename,而且rename自带非常实用的批量改名功能。...
  • 百度云盘在线批量修改文件名称教程 传送门:下载地址 推荐:第七种方式全盘搜索替换,无论文件在哪儿都可以找到并替换掉 百度网盘批量改名之关键词替换重命名(一) 百度云网盘批量改名之正则替换重命名(二) ...
  • 有时候,我们也会遇到这样的需求,就是应用可能有一测试版,线上版本等不同版本,可能不同的版本的一些配置信息不同,比如服务器地址,应用名称,图标等,如果我们在每安装一版本的时候,都去代码里边更改这些值...
  • 1、修改包名:修改AndroidManifest.xml文件对应的package值即可,尽量用字符 2、修改安装后的app的名称:android 的源码中选择“Res”--“values”文件夹,在“strings.xml”中修改app_name 的value
  • navicat怎么修改数据库名称

    千次阅读 2021-02-08 20:14:26
    navicat怎么改数据库名称?1、如果数据库A中的表和设置比较简单,直接复制数据库A中所有表,粘贴到数据库B即可。2、在A数据库上右击 –> 转储SQL文件 –> 结构和数据 ; 在B数据库上右击 –> 运行SQL文件。...
  • 由于Revit二次开发的资料和课程不,很情况下都是依靠博客、技术贴和QQ群里的大神度过难关。在此开始撰写博客,一是总结归纳编程中的所感所得,二是回报大众,共同进步。 ![图1 自己的三板斧]...
  • python可以批量读取文件夹中所有文件名称,进而可以对原名称进行修改,并按顺序再赋给原文件,从而批量修改名称。 代码很简单,以《武林外传》前十回为例,原来的名称是这样的 经过如下操作 import os # 输入...
  • 的去修改太浪费时间,咋今天就来分享一小技巧:批量修改文件名 一、在原有的名字前中后批量加字 随意一点,这是我刚刚新建的文件夹和我存放的路径。 我们来看看代码,我都详细注释了。 import os #导入...
  • ArcGIS怎么修改属性表字段名称

    千次阅读 2020-12-21 07:13:45
    展开全部1、打开ArcMap,选择62616964757a686964616fe4b893e5b19e31333365643662"Add Data",加入刚才修改了字段的属性表;2、选择"Editor"->"start editing"进行对属性表编辑操作;3、在ArcMap的左侧窗口中选择...
  • 批量修改文件名称

    万次阅读 2021-11-17 16:34:15
    1、准备好你的文件内容将需要进行批量改名的文件统一放在一文件夹里,这里以照片.jpg格式的文件作例; 2、将需要改名文件的文件名批量导出“Ctrl+A”全选,按住Shift键后右击鼠,然后选择“复制到路径(A)”; 3...
  • 批量修改图片名称

    千次阅读 2020-08-17 15:53:23
    方法一:【2345看图王】修改图片 ... 2、添加要修改名称的图片 ...方法二:Excel表格批量修改图片名称 ...4、C列,输入一“新图片名称+图片格式”,按【Ctrl+E】快速填充 5、D列,输入更名公式:=“ran
  • Flutter 修改应用名称、图标、启动页

    千次阅读 2019-08-09 15:19:01
    虽然flutter可以同时运行在android和ios设备上,但是修改名称跟logo还是需要分开配置的。 修改应用名称 android 在项目下找到android目录,依次app》src》main》AndroidManifest.xml, 打开AndroidManifest.xml文件...
  • 废话不说开始干就完了 1.修改工程名字 .打开工程 点击工程名称 回车 直接修改 ...2. 修改scheme名称 .点击Xcode上面的工具栏Product->Sechme->Edit Sechm .弹出对话框 会车直接修改...
  • 遇到问题:需要在旧项目上重新做一新项目,所以需要修改项目名。 解决步骤: 其实我本人一直觉得,自己遇到的问题,网上基本都有解决办法,肯定有人在你之前也遇到过这样的问题,只是需要你找到正确的能够解决你...
  • 修改保存的参数名称时,做法分为以下6步: 使用list_variables函数逐个读出已保存的参数名称 使用load_variable函数逐个读取已保存的参数值 逐个修改参数名称 使用已修改的参数名称,结合tf.Variable函数逐个重建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,263,063
精华内容 505,225
关键字:

如何同时修改多个文件的名称