Extraindo alguns arquivos de uma pasta e criando uma lista desses arquivos

2

No momento, estou lidando com uma pasta contendo cerca de 1000 arquivos e tenho que extrair alguns nomes de arquivos dessa pasta e criar outro arquivo (arquivo de configuração) contendo esses nomes de arquivos.

Basicamente, a pasta tem nomes de arquivos no seguinte formato:

1_Apple_A_someword.txt 
1_Apple_B_someword.txt 
2_Apple_A_someword.txt 
2_Apple_B_someword.txt 
3_Apple_A_someword.txt 
3_Apple_B_someword.txt

e assim por diante até

1000_Apple_A_someword.txt
1000_Apple_B_someword.txt

Eu só quero extrair todos os arquivos que têm "Apple_A" neles. Além disso, quero criar outro arquivo que tenha 'labels' (variáveis Unix) para cada um desses arquivos "Apple_A" cujos valores são os nomes dos arquivos. Além disso, os "rótulos" fazem parte dos nomes dos arquivos (tudo até a palavra "Apple") Por exemplo,

1_Apple=1_Apple_A_someword.txt
2_Apple=2_Apple_A_someword.txt
3_Apple=3_Apple_A_someword.txt

e assim por diante ... até

1000_Apple=1000_Apple_A_someword.txt

Você poderia me dizer um comando Unix de uma linha que faz isso? Talvez usando "awk" e "sed"

    
por CB2 26.09.2012 / 01:07

1 resposta

2

Eu faria isso em duas etapas.

Crie um arquivo chamado all_apple_a.dat listando todos os arquivos com "Apple_A" no nome do arquivo:

ls | grep Apple_A > all_apple_a.dat

Crie um arquivo chamado labelled_apples.dat , que "marca" seus nomes de arquivos:

perl -pe 's/(\d+_Apple)(.*)/=/' all_apple_a.dat > labelled_apples.dat
    
por 26.09.2012 / 01:47

Tags