encontrar um nome de pasta baseado na lista contida no arquivo .txt

2

Eu tenho um arquivo .txt contendo 150 números de ID diferentes em cada linha assim:

12345
15876
19643
12586

Localizada no mesmo diretório do arquivo .txt, tenho 300 pastas e desejo copiar apenas as pastas cujos nomes correspondam aos listados no arquivo .txt em uma pasta chamada New_Folder. Existe uma maneira simples de fazer isso?

    
por LDG 12.07.2016 / 01:19

2 respostas

3

Uma maneira seria usar xargs

xargs -a list.txt cp -t path/to/New_Folder/ -R --

Se você deseja usar um loop de shell, use while , por exemplo.

while IFS= read -r dir; do
  cp -t path/to/New_Folder -R -- "$dir"
done < list.txt
    
por 12.07.2016 / 01:35
1

Algo como:

for dir in 'cat textfile.txt'; do
    cp -a "$dir" New_Folder/
    echo Copied $dir
done

talvez?

Nota: se algum dos nomes de diretório em textfile.txt tiver espaços, ficará mais difícil.

Além disso, havia algo significativo nas linhas do seu arquivo .txt? Os diretórios em cada linha deveriam ser tratados de maneira diferente dos diretórios em outras linhas?

    
por 12.07.2016 / 01:25