数字の末尾に-(マイナス)記号を持つ巨大なcsvファイルがあります。これで、マイナス記号を数字の先頭に移動する必要があります。つまり、最後の文字(「-」記号がある場合)を削除し、前に「-」記号を付ける必要があります。
0.00,70440.19-,18.31-,0.00,451.59-,13788.77-,44.19-,6289.29-
1.03-,39.24-,0.11-,16.96-,0.00,72377.70-,0.00,146673.67-,59.11-,0.00
次の方法を試しましたが、10進値 "."がある場合は、前にマイナス記号を追加します。
perl -pe 's#(\d{1,})(-)#$2$1#'g file
出力は次のとおりです。
0.00,70440.-19,18.-31,0.00,451.-59,13788.-77,44.-19,6289.-29
1.-03,39.-24,0.-11,16.-96,0.00,72377.-70,0.00,146673.-67,59.-11,0.00
作業を実行する awk/sed/perl ライナーを提案してください。
ありがとう、ヴィーノ。
ベストアンサー1
以下の解決策が機能します。他のawkまたはsedソリューションを知っておくと良いでしょう。
perl -pe 's#(\d{1,}[.]\d{1,})(-)#$2$1#'g file