0

次の形式の出力があります

weight:121p height:6f money:5 update:8 read:62b query:132 etc

次のような単位なしで出力したい

weight:121 height:6 money:5 update:8 read:62 query:132 etc

私はなどを試し| tr "p", " "ましたが、問題は、出力内の文字 p のすべての出現を削除することです。

コロンの後の単位のみを削除したい。この問題を解決する最善の方法は何ですか?

4

4 に答える 4

3
sed 's/\(:[0-9][0-9]*\)[a-z]/\1/g'

または、単位が 1 文字より長い場合

sed 's/\(:[0-9][0-9]*\)[a-z][a-z]*/\1/g'
于 2012-05-25T04:50:10.597 に答える
0
echo "weight:121p height:6f money:5 update:8 read:62b query:132 etc"|awk '{$1=substr($1,0,length($1)-1);$2=substr($2,0,length($2)-1);$5=substr($5,0,length($5)-1);print}'

        weight:121 height:6 money:5 update:8 read:62 query:132 etc
于 2012-05-25T04:54:38.220 に答える
0

あなたがperlを好むなら:

echo "weight:121p height:6f money:5 update:8 read:62b query:132" \
| perl -pe 's/(\w+:\d+)\w* /$1 /g'
于 2012-05-25T04:55:25.317 に答える
0

これは、末尾に非数字/非ドットを含む数値を強制的に数値に変換します。

awk '{for (i = 1; i <= NF; i++) {split($i, a, /:/); if (a[2] ~ /^[[:digit:]]/) {$i = a[1] ":" a[2] + 0}}; print}' inputfile
于 2012-05-25T11:36:01.117 に答える