gpt4 book ai didi

bash - 重命名文件,使用文本文件作为源

转载 作者:行者123 更新时间:2023-11-29 09:50:56 24 4
gpt4 key购买 nike

在一个文件夹中,我有 600 个文件,编号从 001 到 600。它看起来像 foo_001.bar。在一个文本文件中,我有这个文件夹的编号和标题。现在我想用文本文件中相应的 001 标题 foobar 重命名 foo_001.bar。

但我不知道如何在 Linux Mint 上正确地执行此操作。有人可以帮助我或给我提示吗?

titles.txt 的内容如下所示。在数字和标题之间有一个制表符(当然可以很容易地更改)。

001 title of 1
002 this is 2
003 and here goes 3
004 number four
005 hi this is five
etc

文件夹的内容如下所示。没有异常(exception)。

file_001.ext
file_002.ext
file_003.ext
file_004.ext
file_005.ext
etc

最佳答案

只需使用 read 遍历您的文件,使用 awk cut 获取分隔的列(谢谢, @Jack) 和 mv 您的文件。在这个非常简单的实现中,我假设您的包含新名称的文本文件位于 ./filenames 并且您的脚本是从包含您的文件的目录中调用的。

#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
NR=$(echo "$line" | cut -f 1)
NAME=$(echo "$line" | cut -f 2)
if [ -f "foo_${NR}.ext" ] ; then
mv "foo_${NR}.ext" "$NAME"
fi
done < filenames

关于bash - 重命名文件,使用文本文件作为源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44976815/

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