Abirami
Abirami

Reputation: 19

Issue with negative sign after executing the tr command in UNIX

My requirement is to convert pipe separated file into normal excel. So I used the below tr command in UNIX to perform this operation. tr '|' ',' < filename.csv > filename_Final.csv when I executed the above command it brings the negative sign of the field to field end. So I tried to bring the negative sign to front of the field I dint find correct matching UNIX script. If anyone come across a similar instance, kindly help. Input: Pipe file

1|abc|-123
2|def|456
3|ijk|789

After tr execution

tr '|' ',' < filename.csv > filename_Final.csv

Output: Pipe file is bifurcated into normal columns

1   abc 123-
2   def 456
3   ijk 789

My requirement is to bring the negative sign to front of the field.

Upvotes: 0

Views: 134

Answers (1)

Inian
Inian

Reputation: 85800

Instead of tr, you can just use awk to over-write the Output-Field-Separator which in your case is |

awk '{$1=$1}1' FS="|" OFS=" " filename.csv > filename_Final.csv

The above command over-writes the OFS to a single white-space, hence your input file

1|abc|-123
2|def|456
3|ijk|789

gets converted to

1 abc -123
2 def 456
3 ijk 789

thereby without disturbing the column entries present.

Upvotes: 1

Related Questions