У меня есть некоторые категории и их значения:
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
Мне нужно выполнить процесс для сотен файлов, поэтому очень важно автоматизировать процесс!
Поскольку sed
не имеет представления о числах, это немного трудоемко:
sed -E 's/^[0-9]+\*/1*/; s/^1\*[0-9]+/2/; s/^2\*[0-9]+/3/; s/^3\*[0-9]+/4/;' input
Аналогично идее стилдрайвера , но с учетом звезд:
awk '{ $1 = 1 + gsub(/\*/, "", $1); print; }' < input > output
При выполнении на вводе выборки это приводит к:
2 15.934934
3 19.281281
4 78.20912