Classificar itens em uma pasta de acordo com a ordem dada

-1

Suponha que eu tenha um arquivo a.txt no qual cada linha contenha o número da linha (iniciando em 1) seguido por um espaço e depois seguido por um nome (o nome de um item em uma pasta como por exemplo - something.mkv) . Eu quero classificar os itens nessa pasta de acordo com a ordem dada (ou seja, números de linha dados), a ordem dada no arquivo a.txt. Como fazer isso?

    
por Devesh Jagwani 10.02.2017 / 18:23

2 respostas

0

% bl0ck_qu0te%
cat order.txt | sed -r 's/ *([0-9]+)[ \t]+(.*)/mv  _/'

Esta linha canaliza a linha de conteúdo para o sed que separa o número do pedido e o nome do arquivo para criar o comando renomear.

O comando espera (pelo menos) um caracter espaço ou tab entre o número da linha e o nome do arquivo. Se você tiver diferentes separadores no arquivo, adicione-os entre [ e ] .

O resultado desse script pode ser canalizado para um script bash adicionando > renameWithOrdernumber.sh
ou executado diretamente e, em seguida, anexe o | bash

    
por Timothy Truckle 10.02.2017 / 22:25
0

Exemplo de um arquivo a.txt:

1 d
2 a
3 c
4 b

Então podemos transformá-lo com

$ awk '{printf "mv %s %s\n", $2, $1"_"$2}' a.txt
mv d 1_d
mv a 2_a
mv c 3_c
mv b 4_b

e se gostarmos do resultado, execute-o no bash

$ awk '{printf "mv %s %s\n", $2, $1"_"$2}' a.txt | bash
    
por JJoao 20.09.2017 / 09:49