如何从目录中特定扩展名的第n个文件开始

如何从目录中特定扩展名的第n个文件开始

我需要从第 n 个“.pdf”文件开始执行,其中起点是一个参数。当我们调用时rename.sh 2,它应该从第二个文件开始执行

n=0
for file in *.pdf; do
   while [ $n -le $count ]; do
     filename=${file%$n*}.txt
     n=$(($n+1))
     echo $filename
   done
done

其中“count”是目录中 .pdf 文件的数量。目录中的文件如下one1.pdf、、、等two2.pdfthree3.pdf

答案1

我终于解决了。它仅适用于整数之前具有相同基本名称的文件(例如text1.pdf、text2.pdf、text3.pdf)。如果n与start不同,我们需要增加n直到它等于所需的起点

#!/bin/sh

start=$1
n=0
count=$(find . -type f -name "*.ppm" | wc -l)
for file in *.pdf; do
   if [ $n -eq "$start" ]; then
       while [ $n -le $count ]; do
          filename=${file%"$n"*}.txt
          n=$((n+1))
          start=$((start+1))
          echo "conversion of" $file to $filename
          break
       done
   else
       n=$((n+1))
   fi
done

相关内容