用于批量重命名文件夹中文件的 Shell/Bash 快捷方式

2023-12-06

Shell/Bash 中是否有一个快捷方式可以根据正则表达式或其他一些条件重命名文件夹中的所有文件。我在这里寻找的是我的文件夹文档,假设有 100 个具有以下命名约定的文本文件:

<longdocumentidentifier>-doc-<counter>.txt.

我需要将具有上述给定约定的所有文件重命名为:

doc-<counter>.txt

有没有一句话可以帮助我解决上述问题?


我会建议这样的事情:

for i in *-doc-*.txt; do mv "$i" "${i/*-doc-/doc-}"; done

${i/*-doc-/doc-}替换第一次出现的*-doc- with doc-.

如果您需要进行多次替换(参见注释1),您需要使用${var//Pattern/Replacement}变体。如果您需要替换您需要使用的名称的开头${var/#Pattern/Replacement},如果需要替换末尾(即:扩展名),则需要使用${var/%Pattern/Replacement} form.

See 外壳参数扩展更多细节。此扩展是 bash 特定的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于批量重命名文件夹中文件的 Shell/Bash 快捷方式 的相关文章

  • 如何使用Python distutils?

    我用 python 编写了一个快速程序 将 gtk GUI 添加到 cli 程序中 我想知道如何使用 distutils 创建安装程序 因为它只是命令行应用程序的 GUI 前端 所以它只能在 nix 中工作 所以我不担心它是跨平台的 我的主
  • SQLPlus 中的运行循环

    我制作了一个 bash 脚本 它通过 SQLPlus 连接到数据库并运行一个包含 For 循环的 SQL 脚本 如下所示 但是一旦运行它 它就会卡在循环的 BEGIN 中 如下所示 我尝试直接通过SQLPlus运行 结果是一样的 那么任何人
  • 将条目添加到 Linux 内核 .config 文件

    如何手动将 CONFIG XILINX FIXED DEVTREE ADDR y 行添加到 Linux 配置文件中 当我构建内核时它不断被覆盖 您可以通过以下方式构建make CONFIG XILINX FIXED DEVTREE ADDR
  • 如何在 Ruby 中处理大文件?

    我对编程还很陌生 所以要温柔 我正在尝试从图书馆数据库 dat 文件中提取 IBSN 编号 我已经编写了有效的代码 但它只搜索了 180MB 文件的大约一半 如何调整它以搜索整个文件 或者我如何编写一个程序将 dat 文件分割成可管理的块
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • awk 在Linux终端中输出类似表格或类似Excel的列?

    我做了一个长管子 最后是 awk print 5 t t 3 t 4 在 Linux 终端中 这些列用选项卡填充 第一列条目具有不同数量的字符 因此第二列结果并不完全垂直 怎样才能让桌子看起来更完美呢 尝试将结果通过管道传输到列 t awk
  • 确定文件是否打开

    有什么方法可以确定文件是否被任何包括不锁定文件的应用程序 如记事本 打开 我需要检测给定文件 myfile txt 何时不再在包括记事本在内的任何应用程序中打开 因此我无法使用具有独占访问权限的 File Open 进行测试 因为该文件没有
  • 使用vim,如何快速刷新正在处理的网页?

    我已经使用 VIM 几个星期了 同时处理各种网络语言 我真的很喜欢它 我发现必须点击或单击浏览器并刷新页面才能看到代码更改的效果 这很麻烦 更烦人的是 因为我使用的是 Virtual Box 而且我倾向于在主机系统上处理 PDF 文件 因此
  • 使用 sysfs 的 Linux 用户空间 GPIO 中断

    我想使用 sysfs 在用户空间上使用 GPIO 中断 我使用这些命令 root at91 gpio109 gt echo 109 gt export root at91 gpio109 gt cd gpio109 root at91 gp
  • 如何在多行而不是单行输出上打印 Linux 组名称

    我尝试过 getent group 命令 id Gn user 和一些 sed 组合 但我认为我无法实现 因此向其他程序员伸出援手 我希望能够打印此 groups abc123输出 abc123 devops 构建测试设计 预期输出 gro
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • shell脚本响应按键

    我有一个 shell 脚本 本质上是这样的 while true do read r input if input a then echo hello world fi done 这一切都很好 但我刚刚意识到在这种情况下必须按 ENTER
  • 如何在 shell 中解码 URL 编码的字符串?

    我有一个文件 其中包含已编码的用户代理列表 例如 Mozilla 2F5 0 20 28Macintosh 3B 20U 3B 20Intel 20Mac 20OS 20X 2010 6 3B 20en 我想要一个 shell 脚本 它可以
  • 为什么 java.io.File 没有 close 方法?

    While java io RandomAccessFile确实有一个close method java io File没有 这是为什么 文件在完成时会自动关闭吗 javadoc 的Fileclass 将该类描述为 文件和目录路径名的抽象表
  • 无法声明接口:资源繁忙

    我正在使用 USB4Java 低级版本 并且基本上是根据这段代码工作的here http www mets blog com java usb communication usb4java 我在 Ubuntu 中工作 遇到了有关权限的问题
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • 如何安装 Node 和 NPM 以便不必使用 sudo?

    我正在尝试在 Ubuntu 14 04 计算机上设置 Node js 和 NPM 但遇到了一些问题 在我的第一次尝试中 我不断得到EACCES尝试安装软件包时出错 有时甚至使用sudo 所以我彻底卸载了node和npm 现在我正在尝试找出如
  • 使用sed插入文件内容

    我试图在给定模式之前插入文件内容 这是我的代码 sed i pattern i r scriptPath adapters default permissions xml manifestFile 它添加路径而不是文件的内容 有任何想法吗
  • 如何在不需要设置 LD_LIBRARY_PATH shell 变量的情况下输入“cargo run”?

    我构建了一个 Rust 程序 通过 C 接口调用 C 函数 为了执行该程序 我必须运行 export LD LIBRARY PATH

随机推荐

  • 将多行合并为一个 MySQL Join

    我想不出更好的方法来问这个问题 但这里是 我有 2 张桌子 第一个是标签打印作业的项目表 我们将称之为pj items这些列很简单 job id part num and qty 第二个表是名为的饰面列表PartFinishes在只有 2
  • EJB3 & JAAS 主题/主体如何从 servlet 容器传播到 EJB 层?

    我试图了解 JAAS 主体如何从 Web 层传播到业务 EJB 层 我读过如果角色 领域配置在登录配置 安全上下文 of web xml那么 servlet 容器也会透明地将经过身份验证的主体传递到 EJB 层 两个问题1 首先也是更重要的
  • 熊猫 groupby merge_asof

    我有两个数据框left and right我想根据分组进行合并df1 df1 ID cumul growth perc Nioz TC 09 A1R 0 Nioz TC 09 A1R 2 99881756777804 Nioz TC 09
  • Java 中的空指针异常和范围

    我正在尝试在 Java 环境中学习面向对象编程 我正在编写一个相当简单的代码 但收到此错误 Exception in thread main java lang NullPointerException at Advisor score R
  • 通过 GRAPHQL 订阅传递数据仅在其中一个参数上给出 null

    我有以下 GRAPHQL 订阅 Schema graphql type Subscription booking SubscriptionData type SubscriptionData booking Booking action S
  • NSStoryboardSegue 示例代码(Yosemite Storyboard)

    OS X Yosemite 推出NSStoryboardSegue 故事板转场指定故事板中两个场景之间的过渡或包含关系 Update 如果我尝试在带有 Yosemite 的故事板中使用 NSStoryboardSegue 子类 它会因 SI
  • PrintWriter 未写入文件(Java)

    我正在编写一种提款机程序 它将数据输出到文件中 是 的 我知道它不是英文的 但这不是重点 但我遇到了错误 当我尝试使用时PrintWriter它不起作用 我不知道为什么 public void writeFooter List
  • URL 中的 Unicode 字符(都可以 - 除了 IE)

    我有一些简单的 HTML 其中有另一个 HTML 文件的链接 但该文件名包含 unicode 字符 根据我对链接进行编码的方式 Windows 上的 IE 将不会打开它 但相同的链接可以在所有其他浏览器 Windows 和 Mac 上运行
  • 当顶层没有焦点时更新idletasks

    I ve a ttk progressbar在我的顶层 唯一的 我通过以下函数更新 proc progress x global prog set prog expr fmod prog x 100 update idletasks pro
  • R的download.file的“内部方法”是什么?

    我正在尝试下载以下数据集download file 仅当method wget Doesn t work download file http uofi box com shared static bba3968d7c3397c024ec
  • 在 Eclipse 中从 Java 访问 Scala 实例变量

    我怀疑我一定错过了一些非常基本的东西 但我似乎无法从 Java 代码访问 Scala 字段 package test class TestScala myNumber Int val myNum Int myNumber package t
  • 为什么这个简单的代码适用于 `exit` 而不适用于 `_exit`?

    请看一下这个示例代码 它使用一个非常完善的编程模式来重定向stdout到管道 include
  • CakePHP 2.3 - 单元测试 用户登录

    我想我必须在这里寻求一些帮助来解决我的问题 我花了整个晚上的时间来处理这个问题 我有一个登录方法UsersController像这样 public function login if this gt request gt is post i
  • 为什么 Glass.Mapper 没有填充我的 Enumerable?

    我完全困惑为什么这不起作用 我有一个类 其中包含其他类的列表作为其属性 public class Widget public virtual IEnumerable
  • 如何在Makefile中导出环境变量

    我正在尝试导出环境变量 以便可以在父 shell 中访问它们 生成文件 export vars extract vars from text file remove comments export output export cat env
  • 如何让用户退出使用 Google OAuth2 登录的应用程序?

    我已经在我的网络服务器应用程序中实现了 Google OAuth2 登录流程 使用 python flask 我的应用程序将用户重定向到 Google 他们使用 Google 凭据登录并被引导回我的应用程序 我无法决定如何为此应用程序实现注
  • 提取完成前显示的骨干木偶

    我知道我在做一些愚蠢的事情 但我的骨干木偶应用程序给了我没有意义的模板错误 它似乎在获取事件发生之前渲染单个项目 templateSettings interpolate g MyApp new Backbone Marionette Ap
  • mod_rewrite $_GET

    我有一个FrontController期待两个 GET params controller action 对该站点的典型调用如下所示 我想要做的是允许用户通过以下网址访问该网站 http foo bar start register 我尝试
  • jQuery AJAX post 与文件上传

    我有一个功能页面将数据发布到页面 WebMethod WebMethod public static string sayHello string pTest string pText return pTest pText 我用这个 jQu
  • 用于批量重命名文件夹中文件的 Shell/Bash 快捷方式

    Shell Bash 中是否有一个快捷方式可以根据正则表达式或其他一些条件重命名文件夹中的所有文件 我在这里寻找的是我的文件夹文档 假设有 100 个具有以下命名约定的文本文件