Bearbeiten und Neuanordnen einer aus Excel 2003 importierten Datei über die Befehlszeile

Bearbeiten und Neuanordnen einer aus Excel 2003 importierten Datei über die Befehlszeile

Ich habe eine aus Excel 2003 importierte Textdatei im folgenden Grundformat.

43038    12500    s.ramesh    labour

43038    13000    m.ramesh    doctor

Ich muss diese Datei so anordnen, dass Spalte 1 die Zahlen 1-5 enthält.

Das Problem besteht darin, dass die Spalten 2, 3 und 4 nicht in der bestimmten Reihenfolge angeordnet sind.

Ich möchte diese Datei in einer solchen Reihenfolge, dass

  • Spalte 2 der gesamten Datei sollte an der Stelle 15-19 stehen
  • Spalte 3 sollte in 49-65 sein
  • Spalte 4 sollte an der 75.-95. Stelle stehen

Die Datei hat 100.000 Zeilen und 4 Spalten, bitte.

Ich suche Rat, ob sort, vi oder ein anderer Editor bzw. eine andere Shell hilfreich wäre, da ich dies täglich für etwa 100 Dateien machen muss.

Antwort1

Eine Skriptsprache wie Perl ist hierfür ideal.

$ 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

oder

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

Anschließend können Sie Hunderte von Dateien auf einmal direkt an Ort und Stelle bearbeiten.

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

verwandte Informationen