【问题标题】:Shell script to rename files based on parent folder name with a twist用于根据父文件夹名称重命名文件的 Shell 脚本
【发布时间】:2014-08-03 09:36:52
【问题描述】:

我开始使用 Automator droplet,但它在处理大量文件时有点笨拙。我认为 shell 脚本可能会更好地工作,但我不确定如何继续......

我想要的是重命名大量文件,用父文件夹名称替换部分文件名,同时保留文件的序列化及其文件扩展名。

这是文件夹/文件结构以及我希望将其转换为的内容

/Path/to/Folder/XYZ_123_028_V001_F01A_9G
|____XYZ_123_028_V001.000000.abc
|____XYZ_123_028_V001.000001.abc
|____XYZ_123_028_V001.000002.abc
...
|____XYZ_123_028_V001.000099.abc
|____XYZ_123_028_V001.000100.abc

/Path/to/Folder/XYZ_123_028_V001_F01A_9G
|____XYZ_123_028_V001_F01A_9G.000000.abc
|____XYZ_123_028_V001_F01A_9G.000001.abc
|____XYZ_123_028_V001_F01A_9G.000002.abc
...
|____XYZ_123_028_V001_F01A_9G.000099.abc
|____XYZ_123_028_V001_F01A_9G.000100.abc

谢谢

【问题讨论】:

  • 你有没有尝试过?我们不是来为你写东西的,但如果你发布它,我们会帮助你修复你的脚本。
  • 希望下次他/她先试一试再问。
  • 我完全没想到有人会为我写任何东西。我真的只是在获得一些关于如何解决这个问题的指示。我从 sed 开始,但现在我认为这更适合文件内容而不是文件名操作。非常感谢您的回答。下次我会尝试发布一些更有用的东西。
  • 您的问题的解决方案是here
  • 您的问题的解决方案是here

标签: macos bash shell unix


【解决方案1】:
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$ pwd
/jenkins/do_no_delete_AKS_data/XYZ_123_028_V001_F01A_9G
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$ for i in {1..10}; do touch XYZ_123_028_V001.00000$i.abc ; done
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$ ls -l
total 0
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.0000010.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000001.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000002.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000003.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000004.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000005.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000006.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000007.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000008.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001.000009.abc
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$ dir=$(basename `pwd`); grab=${dir##*_V001}; for f in `ls `; do echo -e "\nFilename = $f"; echo -e "Moving $f -to- ${f%%.*}$grab.${f#*.}\n"; mv $f "${f%%.*}$grab.${f#*.}"; done
Filename = XYZ_123_028_V001.0000010.abc
Moving XYZ_123_028_V001.0000010.abc -to- XYZ_123_028_V001_F01A_9G.0000010.abc

Filename = XYZ_123_028_V001.000001.abc
Moving XYZ_123_028_V001.000001.abc -to- XYZ_123_028_V001_F01A_9G.000001.abc


Filename = XYZ_123_028_V001.000002.abc
Moving XYZ_123_028_V001.000002.abc -to- XYZ_123_028_V001_F01A_9G.000002.abc


Filename = XYZ_123_028_V001.000003.abc
Moving XYZ_123_028_V001.000003.abc -to- XYZ_123_028_V001_F01A_9G.000003.abc


Filename = XYZ_123_028_V001.000004.abc
Moving XYZ_123_028_V001.000004.abc -to- XYZ_123_028_V001_F01A_9G.000004.abc


Filename = XYZ_123_028_V001.000005.abc
Moving XYZ_123_028_V001.000005.abc -to- XYZ_123_028_V001_F01A_9G.000005.abc


Filename = XYZ_123_028_V001.000006.abc
Moving XYZ_123_028_V001.000006.abc -to- XYZ_123_028_V001_F01A_9G.000006.abc


Filename = XYZ_123_028_V001.000007.abc
Moving XYZ_123_028_V001.000007.abc -to- XYZ_123_028_V001_F01A_9G.000007.abc


Filename = XYZ_123_028_V001.000008.abc
Moving XYZ_123_028_V001.000008.abc -to- XYZ_123_028_V001_F01A_9G.000008.abc


Filename = XYZ_123_028_V001.000009.abc
Moving XYZ_123_028_V001.000009.abc -to- XYZ_123_028_V001_F01A_9G.000009.abc

[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$ ls -l
total 0
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.0000010.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000001.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000002.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000003.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000004.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000005.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000006.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000007.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000008.abc
-rw-r--r-- 1 jenkins dmadmin 0 Jun 12 18:55 XYZ_123_028_V001_F01A_9G.000009.abc
[jenkins@sb12 XYZ_123_028_V001_F01A_9G]$

【讨论】:

    猜你喜欢
    • 2011-06-19
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多