gpt4 book ai didi

重命名文件夹中的多个文件的Linux命令错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:40 25 4
gpt4 key购买 nike

我正在使用此命令和 sample_numbers_names.csv 文件重命名文件夹中的多个文件,该文件夹的子文件夹具有不同的文件名。

while IFS=, read -a p ; do SAMPLENUM=${p[0]} ; find . -type f -name "${SAMPLENUM}*" -exec rename -v "${SAMPLENUM}" "${p[1]}_${SAMPLENUM}" {} \; ; done < sample_numbers_names.csv

csv 文件有两列,第一列是旧名称,第二列是新名称。例如

111,abc
222,xyz

使用这个命令后我得到的输出是这样的

111.txt 转换为 abc._111.txt

如何删除 abc 之后的 以便重命名的文件看起来像 abc_111.txt 而不是 abc._111.txt

最佳答案

以下似乎按预期工作:

$ cat sample_numbers_names.csv 
111,abc
222,xyz
$ mkdir -p foo/bar
$ touch foo/bar/{111,222}.txt
$ while IFS=, read old new ; do find . -type f | xargs rename "s/${old}/${new}_${old}/"; done < sample_numbers_names.csv
$ ls foo/bar/
abc_111.txt xyz_222.txt

关于重命名文件夹中的多个文件的Linux命令错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com