Как использовать sed для замены строк категориями?

У меня есть некоторые категории и их значения:

Category: Value:
1*4  15.934934
1*5*3            19.281281
1*8*10*2      78.20912

Я хотел бы заменить категории числами, которые представляют категории .

Например:

1 * 4 имеет два числа, тогда оно будет заменено на 2

1 * 5 * 3 имеет три числа, тогда оно будет заменено на 3

1 * 8 * 10 * 2 имеет четыре числа, тогда он будет заменен на 4

Мне нужно выполнить процесс для сотен файлов, поэтому очень важно автоматизировать процесс!

0
04.07.2017, 01:09
2 ответа

Поскольку sedне имеет представления о числах, это немного трудоемко:

sed -E 's/^[0-9]+\*/1*/; s/^1\*[0-9]+/2/; s/^2\*[0-9]+/3/; s/^3\*[0-9]+/4/;' input
0
28.01.2020, 02:45

Аналогично идее стилдрайвера , но с учетом звезд:

awk '{ $1 = 1 + gsub(/\*/, "", $1); print; }' < input > output

При выполнении на вводе выборки это приводит к:

2 15.934934
3 19.281281
4 78.20912
1
28.01.2020, 02:45

Теги

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