Текст замены в одном файле и соответствие во втором файле

У меня есть два текстовых файла, file1 и file2. В file1 я хотел бы запустить нумерацию во втором столбце (после пространства) от 0. Однако эта новая нумерация должна соответствовать нумерации в file2.

file1.txt

b/boat_deck/19405.jpg 19
b/boat_deck/19491.jpg 19
c/church_outdoor/32697.jpg 325
c/church_outdoor/32110.jpg 325
c/courtyard/42770.jpg 42
c/courtyard/42654.jpg 42

file2.txt

val/00000533.jpg 325
val/00000378.jpg 19
val/00000524.jpg 42

Желаемый вывод с новой нумерацией. Как Вы видите в newfile1, 19 был заменен 0, 325 на 1 и 42 на 2. Аналогично, в newfile2, числа во втором столбце соответствуют новой нумерации (от newfile1).

newfile1.txt

b/boat_deck/19405.jpg 0
b/boat_deck/19491.jpg 0
c/church_outdoor/32697.jpg 1
c/church_outdoor/32110.jpg 1
c/courtyard/42770.jpg 2
c/courtyard/42654.jpg 2

newfile2.txt

val/00000533.jpg 1
val/00000378.jpg 0
val/00000524.jpg 2
1
задан 2 April 2016 в 02:43

1 ответ

Как насчет

awk '
  BEGIN{n=0}
  NR==FNR && a[$2]=="" {
    a[$2]=n++
  }
  {
    $2=a[$2]; print $0 > "new"FILENAME
  }' file1.txt file2.txt
3
ответ дан 7 December 2019 в 12:41

Другие вопросы по тегам:

Похожие вопросы: