キャレットを削除し、ポケットベル番号に括弧を追加します。

キャレットを削除し、ポケットベル番号に括弧を追加します。

私はこのような文字列を持っています

NE234GJKLKU,*9^789098
NE345HJsdfe,*1^534656
YBKJNJKHBKK,*1^987654
UTGHNKOIUYO,*1^123421
ERTYUIJHGLK,*1^456666

私は〜になりたい:

NE234GJKLKU,*(978)-9098
NE345HJsdfe,*(153)-4656
YBKJNJKHBKK,*(198)-7654
UTGHNKOIUYO,*(112)-3421
ERTYUIJHGLK,*(145)-6666

どんな提案がありますか?

答え1

努力するsed

sed -r -e 's/\^//g;s/^.{13}/&(/;s/^.{17}/&)-/' file

NE234GJKLKU,*(978)-9098
NE345HJsdfe,*(153)-4656
YBKJNJKHBKK,*(198)-7654
UTGHNKOIUYO,*(112)-3421
ERTYUIJHGLK,*(145)-6666

答え2

私はこれが行われると思います:

sed -E 's/(.)\^(..)/(\1\2)-/' file

答え3

別のsed解決策:

$ sed 's,*,*(,g' FILE | sed -E 's,([0-9])\^([b0-9])([0-9]),\1\2\3)-,g'
NE234GJKLKU,*(978)-9098
NE345HJsdfe,*(153)-4656
YBKJNJKHBKK,*(198)-7654
UTGHNKOIUYO,*(112)-3421
ERTYUIJHGLK,*(145)-6666

1本のライン:

$ sed -E 's,\*,*(,g;s,([0-9])\^([b0-9])([0-9]),\1\2\3)-,g' FILE
NE234GJKLKU,*(978)-9098
NE345HJsdfe,*(153)-4656
YBKJNJKHBKK,*(198)-7654
UTGHNKOIUYO,*(112)-3421
ERTYUIJHGLK,*(145)-6666

関連情報