Envie o nome do arquivo de um list.txt para outro arquivo, um por um

0

Eu gostaria de baixar arquivos de uma lista. por exemplo. list.txt é o arquivo da lista. Ele contém a lista de nomes de arquivos:

pic_01.jpg
pic_02.jpg
pic_xxx.jpg

Eu preciso de um loop que tire o nome do arquivo um por um e grave em outro arquivo (apenas um nome). O script de download usará esse nome de arquivo único.

Para resumir: envie um nome de arquivo de uma lista para outro arquivo, que contém apenas um nome de arquivo (provavelmente com um loop).

    
por István Radics 09.04.2018 / 09:06

1 resposta

1

Você pode ler o arquivo linha a linha com um while loop e echo cada para um novo arquivo:

#!/bin/bash
while IFS='' read -r l || [[ -n "$l" ]]; do
    echo $l >$(mktemp -p.)
done <list.txt

Isso fará um loop em todas as linhas de list.txt e imprimirá toda a linha em um arquivo temporário criado no diretório atual. Por padrão, mktemp usa o modelo tmp.XXXXXXXXXX para criar os arquivos. Os X s são substituídos por caracteres aleatórios. Você pode adaptá-los às suas necessidades especificando um modelo diferente, por exemplo, tornando mktemp -p. file.XXXXX .

Leitura adicional:

por dessert 09.04.2018 / 09:24