如何仅对每个文件夹的第三个文件执行命令

如何仅对每个文件夹的第三个文件执行命令

我有包含 3 个 .txt 文件的子文件夹。是否可以只选择每个子文件夹的第三个文件?实际上我想在每个文件名的末尾复制并重命名/添加“e”。仅在每个文件夹的第三个文件上。这是文件夹

New folder/20130903/ELF:

Naqs_20130901.txt
Naqs_20130902.txt
Naqs_20130903.txt

New folder/20130904/ELF:

Naqs_20130902.txt
Naqs_20130903.txt
Naqs_20130904.txt

我只会在第三个文件中执行此操作

答案1

如果您使用的是bash,这可以通过数组内的文件名扩展来完成:

for dir in New\ folder/20130903/ELF New\ folder/20130904/ELF ; do
    files=( "$dir"/* )   # store all matching filenames in an array
    echo "${files[2]}"    # use 3rd element (subscripts are 0-based)
done

这输出

New folder/20130903/ELF/Naqs_20130903.txt
New folder/20130904/ELF/Naqs_20130904.txt

将该行替换echo为您需要在这些文件上运行的任何命令:

mv "${files[2]}" "${files[2]}e"

相关内容