Perl скрипт поиска строки из файла1 и замены в файле2 - PullRequest
0 голосов
/ 04 мая 2020

У меня есть 2 файла. Я хочу найти указанное c содержимое из файла 2 и заменить его в файле 1, где это содержимое соответствует.

Содержимое файла 1:

//  vev1      Par/abc/a_searched_content_place_INT
//  vev2      Par/abc/b_searched_content_place_INT

Содержимое файла 2:

// Vev Inst: 'Par/pgh/a_searched_content_inst'
// Vev Inst: 'Par/pgh/b_searched_content_inst'

Здесь сценарий должен автоматически искать «a_searched_content», как экземпляры в файле 1. (Это содержимое между last / и «_place_INT»). Затем он должен найти строки с «a_searched_content» из файла 2 и заменить в файле 1.

Ожидаемый выходной файл:

//  vev1     'Par/pgh/a_searched_content_inst'
//  vev2     'Par/pgh/b_searched_content_inst'

Я попробовал следующий код:

awk -F "[ =:,]" '
  FNR==NR { a[$4]=$0; next } 
  $2 in a { 
    split(a[$4],b); 
    for (i=3;i<=NF-1;i+=2) 
      for (j=2;j<=length(b)-1;j+=2) 
        if ($(i+1) == b[j]) 
           line = (line ? line "," : "") $i ":" b[j+1];
    print $1 "=" line; line = "" 
  }' file1 file2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...