Macos 如何以连续12年的顺序重命名批量文件?
如果在其他地方以另一种方式提出此问题,则表示歉意;我看过了,但找不到具体的答案 无论如何,我想做的是: 我有一个文件夹,文件夹中的文件按年份和月份顺序命名,即Fetch_1961-01_Actual.txt、Fetch_1961-02_Actual.txt、…、Fetch_2002-12_Actual.txt 我想做的是重命名它们,这样它们就可以用一个简单的索引来命名,即01.1961.txt,02.1961.txt,…,12.2002.txt 任何帮助都将不胜感激 提前谢谢 格雷格 另外,我已使用R中的以下代码对其进行排序:Macos 如何以连续12年的顺序重命名批量文件?,macos,terminal,sequence,rename,Macos,Terminal,Sequence,Rename,如果在其他地方以另一种方式提出此问题,则表示歉意;我看过了,但找不到具体的答案 无论如何,我想做的是: 我有一个文件夹,文件夹中的文件按年份和月份顺序命名,即Fetch_1961-01_Actual.txt、Fetch_1961-02_Actual.txt、…、Fetch_2002-12_Actual.txt 我想做的是重命名它们,这样它们就可以用一个简单的索引来命名,即01.1961.txt,02.1961.txt,…,12.2002.txt 任何帮助都将不胜感激 提前谢谢 格雷格 另外,我已
mypath <- "path/to/files"
a <- list.files(path = mypath)
mn <- 1:12
yr <- sort(rep(1961:2002, 12))
for (i in yr) {
b <- paste(rep(mn, 2002-1961), ".", yr, ".txt", sep = "")
}
file.rename(a,b)
mypath以下是我要做的:
使用sed
为每个文件发出mv
命令
将sed
输出保存到文件中
运行该文件中的命令,您将重命名文件
假设您的所有文件都与示例一样命名,此命令将生成您想要的:
ls | sed 's/Fetch_\([0-9]*\)-\([0-9]*\)_Actual.txt/mv & \2.\1.txt/'
在要重命名的文件文件夹中运行该命令,并确保输出外观良好。如果有,请将其保存到文件:
ls | sed 's/Fetch_\([0-9]*\)-\([0-9]*\)_Actual.txt/mv & \2.\1.txt/' > commandList
然后(在文本编辑器中仔细检查了commandList
文件后),运行刚刚创建的commandList
文件:
bash commandList
希望这有帮助 如果您使用的是Windows,您可以看到“对不起,我是新手”的公认答案。我正在使用OS X Yosemite中的终端。我的错!干杯,这是正确的。