精华内容
下载资源
问答
  • Linux批量修改多个文件内容

    千次阅读 2019-05-13 20:58:22
    Linux批量修改多个文件内容参考 单个文件批量替换或者修改文件内容,用vim相当舒爽。但是重复修改N个文件相同的内容就很烦了。这个时候就可以使用sed这个流编辑神器进行处理。sed作为一种流编辑器,它是文本处理中...

    单个文件批量替换或者修改文件内容,用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 

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

     

    更改完成!!!

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

     

     

     

     

    展开全文
  • terminal 修改 文件名称

    千次阅读 2018-05-30 21:16:24
    rename abcdefg abc Linux中修改文件名,很多人甚至很Linux书会介绍说用mv命令,其实是mv只能修改单个目标的名称,真正修改文件名还是和windows一样,使用rename,而且rename自带非常实用的批量改名功能。...
          rename abcdefg abc

      Linux中修改文件名,很多人甚至很多Linux书会介绍说用mv命令,其实是mv只能修改单个目标的名称,真正修改文件名还是和windows一样,使用rename,而且rename自带非常实用的批量改名功能。

      先说mv修改文件名或文件夹的用法:

      mv 需要修改的名称 修改后的名称

      mv用于改名的用法很简单,只能用于单个目标。

      下面介绍rename的使用方法。假如有foo1 foo2 foo3...到foo99的文件,如果想把数字部分都改为2个字符等宽,只需要把1位数字1、2、3...到9改为01、02、03...到09,使用mv就无法实现了,如果使用rename,输入下面命令即可:

    rename foo foo0 foo?

      其中?代表一个字符。除了问号,通配符还有*,代表任意字符,如:

    rename .htm .html *.htm

      上面命令将把*.htm文件改为*.html。

      补充:如果只用于单个文件名的修改,使用方法和mv一样,可以省略第三个参数。

    展开全文
  • 在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 使用新库执行程序

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

    展开全文
  • 当我们运行一React Native项目的时候,React Native会启动一默认端口号为8081的本地服务,该8081的服务就是React Native项目的一本地服务器,用于提供JSBundle包和一些静态资源。这一切都是React Native帮...
  • MFC 多文档同时打开多个文档

    千次阅读 2012-04-09 16:16:19
    MFC多文档中的打开继承自CWinAppEx中的函数OnFileOpen(),这一点在CXXX.cpp中可以看到。比如如下: // CCVMFCApp BEGIN_MESSAGE_MAP(CCVMFCApp, CWinAppEx) ON_COMMAND(ID_APP_ABOUT, &CCVMFCApp::OnAppAbout) ...
  • 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 <...
  • 批量修改多个文件内容的脚本

    万次阅读 2009-12-18 09:37:00
    如果你是需要修改所有文件的内容,则将*.txt直接替换为*即可。把保存后的bat或vbs文件放在需要执行的目录的根目录下,执行后将替换掉当前目录及其子目录下文件的所有需要替换的内容。 以下为批处理代码,保存为bat...
  • java 批量修改文件名称

    万次阅读 2013-09-05 10:58:53
    * @功能 将Y:/tv program/internet路径有200多个文件夹, * 每一个文件夹下面有一个以xxx.mp4或者是xxx_1.mp4的视频文件, * 现在想把每一个xxx.mp4文件名称改为xxx_1.mp4名称 * @author yuhan *
  • 废话不说开始干就完了 1.修改工程名字 .打开工程 点击工程名称 回车 直接修改 ...2. 修改scheme名称 .点击Xcode上面的工具栏Product->Sechme->Edit Sechm .弹出对话框 会车直接修改...
  • 打开多个文件: 1.vim还没有启动的时候: 在终端里输入  vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开一个文件,并且此时vim里会显示出file文件的内容...
  • linux下修改文件名称

    千次阅读 2012-08-07 10:07:09
    1.mv XXX YYY 修改单个...同时,值得注意一点的是,rename命令是带3参数而不是很多人认为的2参数. 举例子:我想吧test.tar.gz修改为backup.tar.gz # rename test backup *.tar.gz 这样就可以了。其中解
  • python可以批量读取文件夹中所有文件名称,进而可以对原名称进行修改,并按顺序再赋给原文件,从而批量修改名称。 代码很简单,以《武林外传》前十回为例,原来的名称是这样的 经过如下操作 import os # 输入...
  • 修改Centos服务器主机名称

    千次阅读 2014-11-18 08:54:54
    Centos服务器安装好之后,默认的主机名为:localhost.localdomain,为了便与管理,我们需要对服务器主机名称进行修改,此修改生效涉及到两配置文件/etc/sysconfig/network和/etc/hosts,下面教大家如何来做:
  • java 修改指定路径下所有文件名称

    千次阅读 2016-10-07 17:17:54
    起因:保存的文件合并的时候文件名相同会覆盖所有需要一可以全部重命名的工具。 注意: 在修改文件名称的过程中要指定文件存放的位置否则所有文件会归到项目路径下面。 下面的例子是修改文件名称放...
  • FastDFS使用之修改下载文件名称

    千次阅读 2019-07-01 14:58:35
    通过在项目中次尝试,找到一种较简单的实现方法,实现过程如下: 一. 应用系统在上传文件到FastDFS成功时将原始文件名和“文件索引(FID)”保存下来(例如:保存到数据库)。 二. 用户点击下载的时用Nginx的...
  • 2.将.qpf和.qsf两个文件的文件名修改为目标工程名。3.将.qpf和.qsf两个文件用记事本或其它文本编辑器打开,找到文件中原工程名的字符串,将原工程名字符串改为新的目标工程名字符串。.qpf和.qsf两个文件中各有一处要...
  • JAVA实现批量修改文件名称

    千次阅读 2019-02-27 16:07:35
    拼接一新的名称,然后重命名即可 import java.io.File; public class Java_2 { public static void main(String[] args) { File file = new File("d:/photos"); File[] list = file.listFiles(); // ...
  • 1,修改项目文件夹的名称和Tests文件名。 xxxTests有几改几 2,右击你的项目(xxx.xcodeproj),选中显示包内容, 右击你的项目,选中显示包内容 3,然后右击project.pbxproj,以文本方式...
  • 我们在windows系统中,有很文件需要去掉文件名称中的前缀,一个个手工修改的话工作量太大。 可以使用ren(重命名命令),做批处理。 1)首先使用dir *.* /b > 1.txt 将该目录下的所有文件都输出到1.txt文件...
  • springboot同时加载多个配置文件

    千次阅读 2019-07-24 13:19:54
    1、首先在resource目录下建立application-logger.yml...在Spring Boot中环境配置文件名必须满足: application-{profile}.properties的固定格式, 其中{profile}对应你的环境标识 例如: application-dev.propert...
  • 当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何修改进程名呢?  打开tomcat_home\bin\setclasspath.bat文件...
  • 前言 spring boot version : 2.0.0.RELEASE maven version : 3.5.0 在不同的环境下,依赖的外部资源是不一样的。...开发环境一配置文件,测试环境一配置文件。 方式1 使用 --spring.profiles.a...
  • Flutter 修改应用名称、图标、启动页

    千次阅读 2019-08-09 15:19:01
    虽然flutter可以同时运行在android和ios设备上,但是修改名称跟logo还是需要分开配置的。 修改应用名称 android 在项目下找到android目录,依次app》src》main》AndroidManifest.xml, 打开AndroidManifest.xml文件...
  • 生成负样本xml文件的一方法是用labelImg在图像上随便画一框,生成xml文件,然后手动去除相关的object节点,但是负样本太的话,这种方法太耗时间,所以我写了一脚本可以批量生成空的xml文件。此外本博客还...
  • 有时候,我们也会遇到这样的需求,就是应用可能有一测试版,线上版本等不同版本,可能不同的版本的一些配置信息不同,比如服务器地址,应用名称,图标等,如果我们在每安装一版本的时候,都去代码里边更改这些值...
  • tomcat名称修改

    千次阅读 2013-11-20 15:53:54
    部署多个tomcat时,遇到两个问题: 1.窗口名称都是tomcat,无法区分具体对应哪一个。 2.进程名称都是java,无法通过进程查看具体的资源使用情况。 通过网上搜集资料,解决方法如下: 1.对于第一个问题,只有在...
  • 之前都是单次修改,单次打包,可随着需求越来越,需要打的包也会越来越,单次打包费时费力,很明显已经不再适合,于是研究了一下,使用gradle成功实现了需要的功能,打包过程也变的更为简单。gradle是一基于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,103,153
精华内容 441,261
关键字:

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