como executar um comando apenas no terceiro arquivo de cada pasta

0

Eu tenho subpastas que contêm 3 arquivos .txt. É possível escolher apenas o terceiro arquivo de cada subpasta? Na verdade eu quero copiar e renomear / adicionar "e" no final de cada nome de arquivo.Only no terceiro arquivo de cada pasta. esta é a dobra

New folder/20130903/ELF :

Naqs_20130901.txt
Naqs_20130902.txt
Naqs_20130903.txt

New folder/20130904/ELF :

Naqs_20130902.txt
Naqs_20130903.txt
Naqs_20130904.txt

e eu só farei isso no terceiro arquivo

    
por p_p 04.07.2016 / 10:11

1 resposta

2

Se você estiver usando bash , isso pode ser feito por expansão de nome de arquivo dentro de uma matriz:

for dir in New\ folder/20130903/ELF New\ folder/20130904/ELF ; do
    files=( "$dir"/* )   # store all matching filenames in an array
    echo "${files[2]}"    # use 3rd element (subscripts are 0-based)
done

Isso gera

New folder/20130903/ELF/Naqs_20130903.txt
New folder/20130904/ELF/Naqs_20130904.txt

Substitua a linha echo pelo comando que você precisa para executar nesses arquivos:

mv "${files[2]}" "${files[2]}e"
    
por 04.07.2016 / 11:53

Tags