微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用逻辑数学运算重命名 Bash

如何解决使用逻辑数学运算重命名 Bash

我有以下命名逻辑 .JPEG 的文件(旧相机)。即,DSC01415.JPEG。

我的谜语是我想做这样的事情:

mv DSC{1415..4131}.JPEG DSC{0001..3517}.JPEG

对于任何文件都具有相同的效果

mv DSC<number>.JPEG DSC<number-less-1414>.JPEG

解决方法

请您尝试以下操作:

"devDependencies": {
    ....
    "multicast-dns": "^7.2.3",....
  },

如果输出看起来不错,请删除 for ((i = 1415; i <= 4131; i++)); do oldname=$(printf "DSC%04d.JPEG" "$i") newname=$(printf "DSC%04d.JPEG" "$((i - 1414))") if [[ -f $oldname && ! -f $newname ]]; then echo mv -- "$oldname" "$newname" fi done
请确保在执行前创建备份,以免意外丢失您的珍贵图片。

,

我结束了在 closh(clojure-shell)解决方案中的工作。好玩。而且,可能会用它做更多疯狂的事情。

#!/usr/bin/env closh-zero.jar
  
(defn split-reg [filename reg] 
  (str/split filename (re-pattern reg)))

  
;; ls |> (map #(split-reg % "teste")) |> (map second) |> \
;; (map #(split-reg % ".txt")) |> (map first) |> \
;; (map # (Integer/parseInt %))
  
(defn file-ids [file reg1 reg2]
  (->
   (split-reg file reg1)
   (second)
   ((fn [s] (split-reg s reg2)))
   (first)
   ((fn [s] (Integer/parseInt s)))))

(defn clj-rn [file reg1 arg reg2]
  (sh mv (identity file) (str/join [reg1 arg reg2])))
   

在closh shell中,定义这些函数后,

ls |> (map #(file-ids % "DSC" ".JPG")) |> (map #(- % 1414)) |> (map str) |> (map #(clj-rn %1 "foto" %2 ".jpg") 
(sh ls |> (identity)))

It worked!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?