首页 > 解决方案 > 例如,选择编号为“file.00001”到“file.00431”的文件

问题描述

我想选择名为:“file.xxxxx”的文件。每个 x 可以从 0 到 9。例如,我将这段代码用于文件 file.0000x

#!/bin/bash

for i in {1..9}
 do [...] file.0000${i} > tmp.0000${i}
 done

如果文件被命名为 file.x 并且 x 从 0 到任何值,我就会知道该怎么做。我考虑过使用 5 个变量 i,j,k,l,m 对应于五个“x”([0-9]),但它不起作用,我不确定它是否正确。有小费吗 ?谢谢 !

标签: bashshell

解决方案


如果您只想处理现有文件,更好的方法是使用regex globbing。

for f in file.[0-9][0-9][0-9][0-9][0-9] ...

并直接使用文件名f

另一方面,大括号扩展将创建所有可能的组合。


推荐阅读