Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何以连续12年的顺序重命名批量文件?_Macos_Terminal_Sequence_Rename - Fatal编程技术网

Macos 如何以连续12年的顺序重命名批量文件?

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 任何帮助都将不胜感激 提前谢谢 格雷格 另外,我已

如果在其他地方以另一种方式提出此问题,则表示歉意;我看过了,但找不到具体的答案

无论如何,我想做的是:

我有一个文件夹,文件夹中的文件按年份和月份顺序命名,即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中的以下代码对其进行排序:

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中的终端。我的错!干杯,这是正确的。