Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a text file imported from Excel 2003 in the following basic format.

43038    12500    s.ramesh    labour

43038    13000    m.ramesh    doctor

I have to arrange this file in such a format that column 1 should be from 1-5.

The problem is that columns 2,3 and 4 are not arranged in the particular order.

I want this file in such an order that

  • column 2 of the entire file should be in the 15-19 place
  • column 3 should be in 49-65
  • column 4 should be in 75-95th position

The file has 100000 rows and 4 columns plz.

I am looking for advice on whether sort, vi, or any other editor or shell would be helpful, because I have to do this for about 100 files daily.

share|improve this question
add comment

1 Answer

A scripting language like Perl is ideal for this.

$ cat t2
5 2 r.gritty teaboy
43038 12500 s.ramesh labour
43038 13000 m.ramesh doctor

$ perl -ane 'printf("%5s %5s\n", $F[2],$F[1])' t2
r.gritty     2
s.ramesh 12500
m.ramesh 13000

or

$ perl  -ane 'printf("%5s %0.5d\n", $F[2],$F[1])' t2
r.gritty 00002
s.ramesh 12500
m.ramesh 13000

Then to edit hundreds of files inplace all in one go

$ perl -i -ane 'printf("%5s %5s\n", $F[2],$F[1])' t1 t2 t3 t4 t5 *.txt foo/t6
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.