Como extrair strings de um arquivo em vários arquivos

3

Eu tenho um arquivo, xxx.lst com os seguintes dados:

aaa 111  
bbb 222  
ccc 333  

Eu preciso criar três arquivos chamados 111.lst , 222.lst e 333.lst respectivamente com aaa em 111.lst bbb em 222.lst e ccc em 333.lst

Eu tentei algo assim:

for x in $(cat xxx.lst|awk '{print $1}');do
    for y in $(cat xxx.lst|awk '{print $2}'|cut -d_ -f3|sort|uniq);do
        echo $x > $y.lst
    done
done

mas isso me dá ccc em todos os 3 arquivos

    
por user165435 12.04.2016 / 15:16

2 respostas

4

Deve ser possível com um único comando awk

awk '{print $1 > $2".lst"}' xxx.lst
    
por 12.04.2016 / 15:30
2

Você pode fazer algo assim:

#!/usr/bin/env bash

while read var1 var2; do
    echo "$var1" > "$var2".lst
done < xxx.lst
    
por 12.04.2016 / 15:25