sed를 사용하여 문자열을 카테고리로 바꾸는 방법은 무엇입니까?

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자리 숫자이므로 3자리로 바꾸세요.

1*8*10*2는 4자리 숫자이므로 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

관련 정보