【发布时间】:2017-10-29 04:46:06
【问题描述】:
所以我是一个编码新手,并且有一段时间想编辑我相当广泛的现场音乐库的格式。我环顾了这里和其他各种资源以到达我所在的位置,但我遇到了障碍。我有以下方式命名的目录:
- 02.10.90 | 23 East Caberet - 阿德莫尔,宾夕法尼亚
- 02.16.90 |天堂 - 马萨诸塞州波士顿
我想将它们简单地重命名为
- 1990-02-10 | 23 East Caberet - 阿德莫尔,宾夕法尼亚
- 1990-02-16 |天堂 - 马萨诸塞州波士顿
我已经能够使用以下方法正确重命名日期:
ls -1 | grep 90 | awk '{print $1}' | awk -F. '{printf "%s-%s-%s\n", "19"$3,$1,$2}' > list1.txt
然后使用
提取名称的其余部分ls -1 | grep 90 | awk '{first = $1; $1 = ""; print $0}'>list2.txt
所以,我有一个从 1990 年到 2004 年的目录列表,我想将其应用于(它们都在不同的子目录中,所以我不介意手动更改“grep 90”。但是,从我生成的两个单独的列表,我不知道如何让它遍历每一行并打印“mv original_name list1.txt+list2.txt”,这样它就会显示:
mv 02.10.90 | 23 East Caberet - Ardmore, PA 1990-02-10 | 23 East Caberet - Ardmore, PA
我浏览了许多以前的帖子,但无法弄清楚最后一点 - 或者更好的是,一个更优雅的解决方案!任何帮助都非常感谢,在此先感谢您!
【问题讨论】:
标签: date awk terminal grep rename