2016-10-03 2 views
0

ファイルを.csvから通常のexcelに変換するtrコマンドで問題が発生しています。trコマンドの末尾にマイナスを引く方法

私の入力ファイルは|で区切られた.csvファイルです。

以下のコマンドを使用しました。

tr '|' ',' <TEST.csv> OUTPUT.csv 

trコマンドの実行後。

Input: 
A|101 
2|202- 

Output: 
A 101 
2 202- 

Expected output: 
A 101 
B -202 

誰のtrコマンドを使用して、フィールドの前にマイナス記号を使用してExcelに正常に.csvファイルを変換するために私を助けることができます。

または実行後に、マイナス記号を先頭からマイナスにする方法があります。

などの他のスクリプトを使用して、末尾のマイナスを先頭のマイナスにすることができます。

ありがとうございます。

+0

なぜ「tr」が何かの位置を変更すると思いますか? 'tr'はcharバイcharベースで動作します。 1つのことしかできません。それは(非常に高いバロックの英語で) '** tr ** ansliterate'です。 ;-) がんばろう。 – shellter

答えて

1

このようなことを試すことができます。

tr '|' ' ' < TEST.csv | awk '{for (i=1; i<=NF; i++) if ($i ~ /-$/) $i = "-"substr($i,1,length($i)-1); print }' > OUTPUT.csv 

例;

[email protected]:/tmp$ cat TEST.csv 
A|101 
2|202- 

[email protected]:/tmp$ tr '|' ' ' < TEST.csv | awk '{for (i=1; i<=NF; i++) if ($i ~ /-$/) $i = "-"substr($i,1,length($i)-1); print }' 
A 101 
2 -202 
+0

私は上記のスクリプトを実行しましたが、それでも私は最後にマイナスを見つけることができます。私の顧客の要求は、先端にマイナス記号を得ることです。親切に、いくつかのUNIXスクリプトを提供して、.csvファイルの先頭をマイナスに変換する – Rat

関連する問題