透過命令列編輯和重新排列從 Excel 2003 匯入的文件

透過命令列編輯和重新排列從 Excel 2003 匯入的文件

我有一個從 Excel 2003 匯入的文字文件,其基本格式如下。

43038    12500    s.ramesh    labour

43038    13000    m.ramesh    doctor

我必須以第 1 列應為 1-5 的格式排列此文件。

問題是第 2,3 和 4 列沒有按特定順序排列。

我想要這個文件的順序是

  • 整份文件的第2列應該在15-19位
  • 第 3 欄應位於 49-65 之間
  • 第 4 列應位於第 75-95 位

該檔案有 100000 行和 4 列。

我正在尋求有關 sort、vi 或任何其他編輯器或 shell 是否有幫助的建議,因為我每天必須對大約 100 個檔案執行此操作。

答案1

像 Perl 這樣的腳本語言非常適合此目的。

$ 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

或者

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

然後一次性就地編輯數百個文件

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

相關內容