首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过控制台操作从目录中的所有文件名中删除多个字符串

要通过控制台操作从目录中的所有文件名中删除多个字符串,你可以使用命令行工具,如 rename 命令(在某些系统上可能需要安装)或 for 循环结合 mv 命令。以下是在类 Unix 系统(如 Linux 或 macOS)上执行此操作的步骤:

使用 rename 命令

如果你安装了 rename 命令,可以使用它来批量重命名文件。例如,如果你想从所有文件名中删除字符串 "old" 和 "string",你可以这样做:

代码语言:txt
复制
rename 's/old|string//g' *

这条命令会查找当前目录下所有文件名中包含 "old" 或 "string" 的文件,并将这些字符串从文件名中删除。

使用 for 循环和 mv 命令

如果你没有安装 rename 命令,或者你想使用更通用的方法,可以使用 for 循环结合 mv 命令来重命名文件。以下是一个示例脚本,它会遍历当前目录下的所有文件,并删除指定的字符串:

代码语言:txt
复制
#!/bin/bash

# 要删除的字符串列表
strings_to_remove=("old" "string")

# 遍历当前目录下的所有文件
for file in *; do
  # 对于每个文件,遍历要删除的字符串列表
  for str in "${strings_to_remove[@]}"; do
    # 如果文件名包含该字符串,则替换为空(即删除该字符串)
    newname="${file//$str/}"
    # 如果新文件名与原文件名不同,则重命名文件
    if [ "$newname" != "$file" ]; then
      mv -- "$file" "$newname"
      file="$newname" # 更新文件名以便下一次循环使用新名称
    fi
  done
done

将上述脚本保存到一个文件中,例如 rename_files.sh,然后在命令行中运行它:

代码语言:txt
复制
chmod +x rename_files.sh
./rename_files.sh

注意事项

  • 在执行重命名操作之前,请确保你有足够的权限来修改这些文件。
  • 在执行批量重命名之前,最好先备份你的文件,以防万一出现意外情况。
  • 如果你的文件名包含空格或其他特殊字符,确保在执行命令时正确引用文件名。

通过上述方法,你可以有效地从目录中的所有文件名中删除多个字符串。如果你在使用这些命令时遇到任何问题,请确保检查你的系统环境和命令的正确性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • python 基本模块

    1.os模块  os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果。  os.name:返回当前操作系统名称('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos')  os中定义了一组文件、路径在不同操作系统中的表现形式参数,如    os.sep(文件夹分隔符,windows中是 \ )    os.extsep(扩展名分隔符,windows中是 . )    os.pathsep(目录分隔符,windows中是 ; )    os.linesep(换行分隔符,windows中是 \r\n )  os中有大量文件、路径操作的相关函数,如:    listdir(path):列举目录下的所有文件    makedir(path):创建文件夹,注:创建已存在的文件夹将异常    makedirs(path):递归式的创建文件夹,注:创建已存在的文件夹将异常    remove(filename):删除一个文件    rmdir(path):删除一个文件夹,注:删除非空的文件夹将异常    removedirs(path):递归的删除文件夹,直到有一级的文件夹非空,注:文件夹路径不能以'\'结束    rename(src,dst):给文件或文件夹改名(可以改路径,但是不能覆盖目标文件)    renames(src,dst):递归式的给文件或文件名改名    walk(path):列举path下的所有文件、文件夹  os中与进程相关的操作,如:    execl(path):运行一个程序来替代当前进程,会阻塞式运行    _exit(n):退出程序    startfile(filename):用与文件关联的程序运行,关联程序打开后,立即返回    system(cmd):运行一个程序或命令,会立即返回,并在cmd执行完成后,会返回cmd退出代码  os.path:在不同的操作系统中调用不同的模块,是一个可import的模块,这个模块中提供很多有用的操作:    abspath(path):返回path的绝对路径,若path已经是绝对路径了,则保持。    basename(path):返回path中的文件名。    commonprefix(list):返回list中的统一前缀,用于获得一组字符串的左起相同的内容    dirname(path):返回path中的文件夹部分,结果不包含'\'    exists(path):文件或文件夹是否存在    getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数    getmtime(path):文件或文件夹的最后修改时间    getctime(path):文件或文件夹的创建时间    getsize(path):文件或文件夹的大小,若是文件夹返回0    isabs(path):返回是否是绝对路径    isfile(path):返回是否是文件路径    isdir(path):返回是否是文件夹路径    islink(path):返回是否是快捷方式    join(path1,path2,...):将path进行组合,若其中有绝对路径,则之前的path将被删除    normcase(path):转换路径中的间隔符    normpath(path):转换路径为系统可识别的路径    realpath(path):转换路径为绝对路径    split(path):将路径分解为(文件夹,文件名)    splitext(path):将路径分解为(其余部分,.扩展名),若文件名中没有扩展名,扩展名部分为空字符串  在操作与系统不支持的对象时,抛出OSError异常。 2.sys模块  系统信息和方法模块,提供了很多实用的变量和方法:    argv:命令行参数List,第一个元素是程序本身路径    builtin_module_names:Python解释器导入的模块列表    modules.keys():返回所有已经导入的模块列表    exc_info():获取当前正在处理的异常类    exc_type、exc_value、exc_traceback:当前处理的异常详细信息    executable:Python解释程序路径    exit(n):退出程序,正常退出时exit(0)    getwindowsversion():获取Windows的版本    hexversion:获取Python解释程序的版本值,16进制格式如:0x

    02

    linux笔记

    目录虚拟文本控制台(虚拟终端)基本认识shell常用基本密令辅助操作ls命令 : 查看目录下信息mkdir 文件管理命令touch命令创建/更新文件cp命令: 可用于目录或文件的复制使用mv命令移动/重命名文件及目录(剪切并且可以重命名)rm命令删除文件rmdir命令删除目录(删除空目录,且必须在上级目录进行操作)find命令查找文件获取帮助vim编辑器复制,粘贴,删除操作文件内容查找(先按:进入末行模式)撤销编辑文件的保存及退出vi编辑器文件内容替换查看文件内容命令cat查看文件内容head/tail 显示文件头部信息/尾部信息grep查询字符串管道符重定向磁盘分区与系统文件挂载挂在文件系统kll -9 xxxx(进程编号) 杀死该进程卸载挂载点扩充系统的硬盘空间命令行下提高工作效率的方法文件系统的自动挂载用户和组用户管理用passwd命令管理用户登录密码usermod命令修改用户属性删除用户用于修改用户口令有效期限的chage命令chfn命令(修改用户的注释信息)修改用户Shell类型的chsh命令用户组的管理用groupadd命令创建用户组用groupmod命令修改用户组属性用groupdel命令删除用户组用gpasswd命令维护组中成员临时加入到某个组扩展知识查看用户信息的id命令:输出指定用户所在组groups命令:查看当前登录用户who am i 命令:查看当前用户w命令:查看登录用户who命令查看登录用户历史last命令文件的权限权限修改以字母的形式修改文件权限以数字形式修改权限提升用户的权限ACL规则强制位权限服务与进程的管理设置服务的自启动状态进程管理查看各进程的继承关系进程的终止进程的调度周期性调度名crontab,功能:周期性的运行指定的程序软件安装RPM包安装yum安装TAR包管理工具简介

    02

    讲解Invalid character escape '\o'.

    在编程中,我们经常遇到需要在字符串中插入一些特殊字符的情况。对于某些字符,我们可以直接在字符串中使用它们,如'a'、'b'等。但是对于其他一些特殊字符,我们需要使用转义字符来表示它们。 在字符串中,反斜杠\被用作转义字符的前缀,用来表示一些特殊字符。例如,\n代表换行符,\t代表制表符,\\"代表双引号等。通过使用转义字符,我们可以在字符串中插入这些特殊字符。 然而,有些时候我们会遇到类似于'\o'这样的错误,提示"Invalid character escape '\o'",意味着无效的字符转义'\o'。这是因为在转义字符后面跟着的字符并不是一个有效的转义序列。 在这种情况下,我们可以通过将反斜杠\加倍来解决该问题。也就是说,我们需要将字符串中的'\o'写为'\\o',这样编译器将会将'\\'解析为一个反斜杠字符本身,并且'o'将被视为普通的字符,而不是一个转义序列。 下面是一个示例,展示了如何在Python中解决"Invalid character escape '\o'"的问题:

    01

    linux基础命令介绍二:输入与输出

    在第一篇介绍命令行接口时,我们是这样描述CLI的:是一种通过在终端窗口中键入文本命令来实现与计算机交互的接口。 这里简要说明一下终端的概念,历史上,控制台与终端都是硬件。其中控制台(console)是计算机本身就有的设备,一台计算机只有一个控制台。计算机启动的时候,所有的信息都会显示到控制台上。而终端(terminal)属于外围设备(显示器和键盘),通常通过串口与计算机相连,然后对计算机进行操作。计算机操作系统中,与终端不相关的信息,比如内核消息,后台服务消息,不会显示到终端上。由于控制台与终端都起着显示信息的作用,于是随着时间的推移,它们之间的区别也越来越模糊。现在,计算机硬件越来越便宜,通常不再连接以前那种真正意义上的“终端设备”了,终端和控制台由硬件的概念,逐渐演化成了软件的概念。当前所说的终端,比如linux中的虚拟终端,都是软件的概念。 如上一篇中提到的命令who的输出:

    02
    领券