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개의 열이 있습니다.
매일 약 100개의 파일에 대해 이 작업을 수행해야 하기 때문에 sort, vi 또는 기타 편집기나 셸이 도움이 될지에 대한 조언을 찾고 있습니다.
답변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