Git 根据正则表达式替换的 mv 文件

Git mv Files According to Regex Substitution

我正在尝试重命名大量错误命名的文件,这些文件在我的本地 git 存储库中进行了跟踪。这些文件当前的格式为 foo.txt_1.txt。我想将它们更改为 foo.txt.

这是我到目前为止一直在尝试的:

ls *_1.txt | xargs -I {} git mv -n {} newfilename

我只是不确定如果 newfilename 进行我想要的替换我应该使用什么。

使用 for 循环会更容易。

for f in *_1.txt; do
    echo git mv $f ${f/_1.txt/}
done

这将回显它会 运行 的命令,因此您可以检查它是否正确。从实际执行的“git”命令之前删除“echo”。

Bash 内联替换的工作方式如下:

${VAR/_1.txt/}

其中VAR为变量名,要移除的模式在/之间。这里只是简单的文本,但是你可以在这里使用正则表达式。