Adicionando partes de um arquivo a outro arquivo

1

Eu sou novo no Linux, fazendo algumas coisas opencv.

Eu tenho um arquivo, positives.txt com 1400 imagens de nomes e coordenadas assim:

./positives/1.jpg 1 9 25 70 21
./positives/2.jpg 1 13 5 45 38
./positives/3.jpg 1 8 20 63 14
./positives/4.jpg 2 4 25 76 23 11 17 67 21

... etc

e outro arquivo samples.txt assim:

./positives/800.jpg 
./positives/801.jpg 
./positives/802.jpg 
./positives/803.jpg 

... etc

Eu quero fazer um script bash que copie todos os números do arquivo positives.txt para o arquivo samples.txt . Então a saída será assim

./positives/800.jpg 1 9 25 70 21
./positives/801.jpg 1 13 5 45 38
./positives/802.jpg 1 8 20 63 14
./positives/803.jpg 2 4 25 76 23 11 17 67 21

... etc

Como posso fazer isso?

    
por Unknown X 30.04.2017 / 05:37

1 resposta

1

Na sua amostra

$ cut -d ' ' -f2- positives.txt | paste -d '' samples.txt -
./positives/800.jpg 1 9 25 70 21
./positives/801.jpg 1 13 5 45 38
./positives/802.jpg 1 8 20 63 14
./positives/803.jpg 2 4 25 76 23 11 17 67 21

Isso pressupõe que os arquivos já estejam classificados e que a primeira linha de positives tenha os números que você deseja adicionar à primeira linha de samples

Notas

  • cut -d ' ' -f2- cut from positives todos os campos do segundo campo em diante, supondo que seja delimitado por espaço
  • | passa a saída cut como stdin para paste
  • paste -d '' samples.txt - cola linhas de stdin em linhas de samples sem adicionar caracteres delimitadores (o arquivo digitado aqui tem um espaço no final de cada linha. Se essa não for a realidade, use paste -d ' ' para obter um espaço)
por Zanna 30.04.2017 / 06:51