For循环写入文件名

时间:2019-02-07 12:43:08

标签: bash

我有一个for循环,可将某些文件的路径添加到文本文件中。

我有16个文件,每个文件都类似于1a.mp41b.mp41c.mp42a.mp42c.mp4等。

我想将每个数字开头的文件名写入文本文件。例如,所有名称以1开头的文件都被写入list_1.txt。但是我有一个问题:在我的代码中,名称10a.mp4也以数字1开头,当它应放在list_1.txt中时,它也被添加到list_10.txt中。

我需要确保仅将以相同编号开头的文件记录到同一文本文件中,而不是仅记录相同的数字或字符序列。

幸运的是,2a.mp43a.mp4之类的文件已正确分类,因为我没有20a.mp4之类的文件。

这是我目前拥有的代码。

folder="videos"
NUM=1

for f in $folder/${NUM}*.${file_format}; do
  echo "file '$f'" >> "list_$NUM.txt"
done

1 个答案:

答案 0 :(得分:0)

尝试一下:

folder="videos"
NUM=1

for f in $folder/${NUM}[a-zA-Z]*.${file_format}; do echo "file '$f'" >> list_$NUM.txt; done