Copiando texto específico de um arquivo em um esquema

0

Eu tenho dois arquivos. Um sendo um esquema e o outro uma lista de dados. O esquema parece:

line_name:
shot_edit:
channel edit:
cable_edit

e se repete regularmente para o número de linhas que eu tenho.

O outro arquivo é uma lista de nomes de linha e vai:

name1
name2
name3

Eu gostaria de copiar todos os nomes de linha logo após o campo line_name, mas eu realmente não sou tão bom assim com o awk. Alguém poderia me dar algumas dicas?

    
por user55580 30.12.2013 / 17:10

3 respostas

1

Ambos os comandos fornecem a seguinte saída

sed '/line_name/ r linenames' schema
awk '{print} /line_name/ {while (getline < "linenames") print}' schema
line_name:
name1
name2
name3
shot_edit:
channel edit:
cable_edit
    
por 30.12.2013 / 23:24
0

Este comando insere cada linha do segundo arquivo ( linenames ) após cada primeira linha no arquivo schema

  awk '{print} /line_name/ { getline < "linenames" ; print}' schema 

com esta saída

line_name:
name1
shot_edit:
channel edit:
cable_edit
line_name:
name2
shot_edit:
channel edit:
cable_edit
....

Este comando em vez disso

awk '{print} /line_name/ { getline < "linenames" ; print}' schema | sed ':a;N;$!ba;s/line_name:\n/line_name: /g'

Insira o nome logo após a tag line_name:

line_name: name1
shot_edit:
channel edit:
cable_edit
line_name: name2
shot_edit:
channel edit:
cable_edit
line_name: name3
...
    
por 09.05.2014 / 02:01
0

Se você deseja inserir na mesma linha com line_name :

$ awk '/line_name/{getline name < "linenames";$0 = $0" "name}1' schema
line_name: name1
shot_edit:
channel edit:
cable_edit
line_name: name2
shot_edit:
channel edit:
cable_edit
line_name: name3
shot_edit:
channel edit:
cable_edit
    
por 10.05.2014 / 12:07

Tags