我有一些类别及其值:
Category: Value:
1*4 15.934934
1*5*3 19.281281
1*8*10*2 78.20912
我想用代表类别的数字替换类别。
例如:
1*4有两个数字那么它会被2替换
1*5*3 有 3 个数字,则将其替换为 3
1*8*10*2 有四个数字,则将其替换为 4
我需要对数百个文件执行该过程,因此自动化该过程非常重要!
答案1
如同钢铁司机的想法,但计算星星:
awk '{ $1 = 1 + gsub(/\*/, "", $1); print; }' < input > output
当在示例输入上运行时,会产生:
2 15.934934
3 19.281281
4 78.20912
答案2
由于sed
没有数字概念,这做起来有点费力:
sed -E 's/^[0-9]+\*/1*/; s/^1\*[0-9]+/2/; s/^2\*[0-9]+/3/; s/^3\*[0-9]+/4/;' input