Os dois arquivos são idênticos?

0

No momento, estou tentando depurar parte de um script que envolve a criação de um arquivo feat.scp.

Este arquivo geralmente é feito como tal

for n in $(seq $nj); do
  cat $mfccdir/raw_mfcc_$name.$n.scp || exit 1;
done > $data/feats.scp || exit 1

Mas eu peguei manualmente o arquivo raw_mfcc_$name.$n.scp e colou em $data e renomeou para feats.scp .

Isso é diferente do que o loop for está fazendo?

    
por Bob Burt 25.12.2016 / 05:06

1 resposta

1

Primeiro, vamos passar pelo loop. O loop deve ultrapassar determinado intervalo de números fornecido pela variável $nj e, em cada iteração, imprimir raw_mfcc_$name.1.scp , raw_mfcc_$name.2.scp e assim por diante, até o número $nj . Então todos esses arquivos são descartados em um feats.scp .

Agora, se você pegar todos esses arquivos manualmente e colá-los em feats.scp , um por um, então, com certeza - é o mesmo. Se você colou apenas um arquivo em feats.scp , isso não é o mesmo.

Também há um pequeno problema aqui com cat $mfccdir/raw_mfcc_$name.$n.scp || exit 1; part. Se o número $nj for 5 e os arquivos forem numerados como 1,2,3,5 (ausente 4), o script sairá em 4 e não incluirá 5 na saída. Não está claro se foi intencional ou não, mas eu recomendo que você edite isso para ter pelo menos continue declaração em vez de exit e ainda entregar o outro conteúdo em feats.scp

    
por Sergiy Kolodyazhnyy 25.12.2016 / 05:20