gpt4 book ai didi

linux - 如何在 bash 中循环一对文件?

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

我有一堆文件,这些文件成对出现。例如:

File1_1.tar.gz, File1_2.tar.gz
File2_1.tar.gz, File2_2.tar.gz
...

我获取第一对并执行一堆命令并获取输出,然后继续处理第二对。但只有当文件夹有两个文件如 File1_1.tar.gz, File1_2.tar.gz 时我才能执行此操作之后我删除这些并手动添加第二对。我从这样的目录中获取文件名

FILE_1=$(ls | sort -n | head -n 1)
FILE_2=$(ls | sort -n | tail -n 1)

我想用 for 循环来实现,比如获取前两对获取输出,然后获取第二对获取输出,依此类推。

最佳答案

这就是您所知道的:每个文件名都有两部分,用 _ 分隔。第一部分是任意的,第二部分是 1.tar.gz2.tar.gz,并且文件成对出现。

这意味着您可以简单地迭代一组,并使用参数扩展来生成该对的(已知)另一半。

for f1 in *_1.tar.gz; do
base=${f1%_1.tar.gz} # Strip _1.tar.gz, leaving File1, File2, etc
f2=${f1%_1.tar.gz}_2.tar.gz # add _2.tar.gz to get File1_2.tar.gz, etc
...
done

关于linux - 如何在 bash 中循环一对文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55560716/

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