Imprima todas as linhas abaixo quando a correspondência for encontrada

2

Eu tenho um arquivo a1.txt assim:

  a.log.54
  a.log.56
  a.log.57
  a.log.58
  a.log.59
  a.log.110
  a.log.113
  a.log.114
  a.log.115
  a.log.116
  a.log.117
  a.log.118
  a.log.119
  a.log.120
  a.log.121
  a.log.122
  a.log.112
  a.log.123
  a.log.124
  a.log.125
  a.log.126
  a.log.128
  a.log.129
  a.log.130
  a.log.131
  a.log.132
  a.log.133
  a.log.134
  a.log.135
  a.log.136
  a.log.127
  a.log.137
  a.log.139
  a.log.140

a2.txt

  a.log.124
  a.log.125

Eu preciso combinar o primeiro entrie de a2.txt em a1.txt e imprimir todas as linhas abaixo assim que a correspondência for encontrada.

  a.log.124
  a.log.125
  a.log.126
  a.log.128
  a.log.129
  a.log.130
  a.log.131
  a.log.132
  a.log.133
  a.log.134
  a.log.135
  a.log.136
  a.log.127
  a.log.137
  a.log.139
  a.log.140
    
por Naresh 26.08.2016 / 18:48

1 resposta

2

Este script awk deve funcionar. Defina a primeira linha de a2.txt em uma variável, digamos, trigger e imediatamente inicie o processamento do próximo arquivo usando nextfile . Comece a imprimir a partir do a1.txt do ponto em que um registro corresponde a trigger

awk 'first{trigger=$0; nextfile}; 
    !first && $0 == trigger{start=1}; 
    start' first=1 a2.txt first=0 a1.txt
    
por 26.08.2016 / 19:18