unix bash 重命名 --backup=numbered 从 abc.txt.~1~ 到 abc~1~.txt [英] unix bash rename --backup=numbered from abc.txt.~1~ to abc~1~.txt
本文介绍了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屋!
查看全文