使用名称中的数字在多个文件上运行脚本

时间:2014-10-31 18:07:15

标签: file shell sh

我有一个我想在多个文件上运行的脚本,我现在运行它的方式就是这样:

for input in /home/arashsa/duo-bokmaal/Bokmaal/*.txt ; do
    name=$(basename "$input")
    /corpora/bokm/tools/The-Oslo-Bergen-Tagger/./tag-lbk.sh "$input" > "/home/arashsa/duo-bokmaal-obt/$name"
done

我运行它的文本文件(在第一行)以这种方式命名:

DUO_BM_{number}.txt

其中{number}是介于0和40000之间的数字。虽然有40000个文件,但有些数字丢失了,所以它可能会分为1,2,5,10,13等。如果我可以怎么办?想要在0到100的文件上运行脚本吗?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

for ((i=0; i <= 100; i++)); do
  name=DUO_BM_${i}.txt
  input=/home/arashsa/duo-bokmaal/Bokmaal/$name
  if test -e "$input"; then
    /corpora/bokm/tools/The-Oslo-Bergen-Tagger/./tag-lbk.sh "$input" > "/home/arashsa/duo-bokmaal-obt/$name"
  fi
done

答案 1 :(得分:0)

这有效:

#!/bin/bash                                                                                                                                                                                                 

for i in `seq 0 5`; do
  name=DUO_BM_${i}.txt
  input=/home/arashsa/duo-bokmaal/Bokmaal/$name
  if test -e $input; then
    /corpora/bokm/tools/The-Oslo-Bergen-Tagger/./tag-lbk.sh "$input" > "/home/arashsa/duo-bokmaal-obt/$name"
  fi
done