sedを使用して文字列をカテゴリに置き換えるには?

sedを使用して文字列をカテゴリに置き換えるには?

いくつかのカテゴリとその値があります。

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

カテゴリーをカテゴリーを表す数字に置き換えたい。

たとえば、

1 * 4に2つの数字がある場合は、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

関連情報