내 유닉스 시스템에 4개의 텍스트 파일이 있고 데이터를 xls 파일에 넣고 메일을 통해 보내려고 합니다.
텍스트1.txt:
100
150
130
120
110
텍스트2.txt:
200
230
240
250
260
..
..
..
곧...
text1.txt
첫 번째 열에 파일 데이터를, text2.txt
두 번째 열에 파일 데이터를, 마지막으로 각 행의 데이터 합계를 갖고 싶습니다 .
답변1
1단계: 파일을 다중 열 파일에 결합합니다.
paste f1 f2 f3 > _1.tsv
2단계: 합계를 계산하는 수식을 추가합니다.
gawk '1;END{for(i=0;i<NF;i++)
{printf("=SUM(%c1:%c%d)\t",65+i,65+i,NR)} print ""}' _1.tsv > _2.tsv
3단계: 결과 확인
$ cat _2.tsv
100 100 100
...
99 99 99
=SUM(A1:A5) =SUM(B1:B5) =SUM(C1:C5)
$ gnumeric _2.tsv # excel, whatever your favorite spreadsheet
4단계: (아마도 필요하지 않음) 파일을 정말로 원하는 경우 .xls
:
ssconvert _2.tsv _2.xls
ssconvert
gnumeric
아름다운 스프레드시트가 제공됩니다 ( apt-get install gnumeric
필요한 경우). 다양한 변환 형식을 사용할 수 있습니다.
ssconvert _2.tsv _2.pdf
ssconvert _2.tsv _2.txt
예상대로 이러한 txt 및 pdf 파일의 수식은 해당 결과로 대체됩니다.
고쳐 쓰다:
행 합계가 포함된 열을 얻으려면 2단계를 수행하면 됩니다.
gawk '{printf("%s\t=SUM(A%d,%c%d)\n", $0, NR, NF+64, NR)}' < _1.tsv
100 1 90 =SUM(A1,C1)
241 2 23 =SUM(A2,C2)
312 3 3 =SUM(A3,C3)
어디:
NR
행 수(레지스터 수)를 나타냅니다.NF
필드 수