Поместите каждый элемент первого столбца в число раз, которое отображается во втором столбце

#bash #awk #windows-subsystem-for-linux

Вопрос:

У меня нет большого опыта использования инструментов Unix, и мне было интересно, как это сделать:

У меня есть файл с 2 такими столбцами (вкладка пробел):

 Agent 2
Person 3
Place 1
Location 4
 

Каждый отдельный элемент первого столбца будет представлять собой число ( Agent -> 1 , Person -> 2 , Place -> 3 , Location -> 4 ).

Таким образом, я хочу, чтобы каждый числовой элемент первого столбца соответствовал количеству раз, которые появляются во втором столбце. В этом случае:

 1
1
2
2
2
3
4
4
4
4
 

Объяснение: Agent (1) появляется 2 раза, Person (2) появляется 3 раза и т. Д.

Надеюсь, вы сможете мне помочь. Заранее спасибо.

Комментарии:

1. Идеальным было бы начать с числа 1 и добавить 1 для каждого отдельного элемента в первом столбце. Я хотел бы , чтобы это делалось автоматически, но я не знаю, как это сделать: (, в противном случае это можно было бы сделать вручную в любом текстовом редакторе.

Ответ №1:

 $ awk '{for (i=1; i<=$2; i  ) print NR}' file
1
1
2
2
2
3
4
4
4
4