unix bash 重命名 --backup=numbered 从 abc.txt.~1~ 到 abc~1~.txt [英] unix bash rename --backup=numbered from abc.txt.~1~ to abc~1~.txt

查看:45
本文介绍了unix bash 重命名 --backup=numbered 从 abc.txt.~1~ 到 abc~1~.txt的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种方法来处理我的 hughmungus 嵌套的 &不改变结构或元数据的编号备份.经过一番研究,我对 unix mv --backup=numbered 进行了跟进...

I am looking for a way to process my hughmungus amount of nested & numbered backups without changing structure or meta-data. After a bit of research I have a follow up to unix mv --backup=numbered ...

  • 如何删除."在~"之前?
  • 如何将其应用于非结尾类型的文件?
swap_file_extension_and_backup_number ()
{
IFS=$'\n'
for y in $(ls $1)
do
    mv $1/`echo $y | sed 's/ /\\ /g'` $1/`echo "$y" | sed 's/\(\.[^~]\{3\}\)\(\.~[0-9]\{1,2\}~\)$/\2\1/g'`
done
}

它被这样调用 swap_file_extension_and_backup_number/folder_path/ 并且会像这样重命名:

which is called like this swap_file_extension_and_backup_number /folder_path/ and would rename like that:

/folder_path/imfine.jpg
/folder_path/sadly_i_dont_get_changed.~1~
/folder_path/def.txt.~1~

/folder_path/iamfine.jpg
/folder_path/sadly_i_dont_get_changed.~1~
/folder_path/def.~1~.txt

但应该创建

/folder_path/iamfine.jpg
/folder_path/sadly_i_dont_get_changed~1~
/folder_path/def~1~.txt

简而言之:我无法处理 sed/regex 行.请不要拍我.

推荐答案

试试这个:

swap_file_extension_and_backup_number ()
{
IFS=$'\n'
for y in $(ls $1)
do
        mv $1/`echo $y | sed 's/ /\\ /g'` $1/` echo "$y" | sed 's/\(\.[^~]\{3\}\)\?\(\.\)\(~[0-9]\{1,2\}~\)$/\3\1/g'`
done
}

参见正则表达式 演示

这篇关于unix bash 重命名 --backup=numbered 从 abc.txt.~1~ 到 abc~1~.txt的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆