2016-10-20 5 views
1

나는 CPU_status.csv 파일을 갖고 있는데 리눅스에서 "./Test.sh"스크립트를 사용하여 CPU_test.xls 형식으로 변환하려고합니다. VI (Ericsson SSR8020)하지만 ftp 때마다 항상 한 열을 Excel에서 얻고 있습니다. 의견 및 피드백을 보내 주시면 감사하겠습니다. 고마워.리눅스 환경 (SSR 8020 에릭슨)에서 CSV 파일을 XLS 파일로 변환

#!/bin/bash 
 
echo "Check CPU" 
 
tail -n +2 CPU_status.csv | head -1 | awk 'BEGIN{FS="|"}{print $1,$3,$16,$33,$50,$67,$81,$98}'| column -t;tail -n 50 CPU_status.csv | awk 'BEGIN{FS="|"}{print $1,$3,$16,$33,$50,$67,$81,$98}' | column -t 
 
echo "Hit Enter to Continue..." 
 
sleep 1 
 
read continue 
 

 
echo "./Test.sh>CPU_test.xls" 
 
./Test.sh>CPU_test.xls 
 
echo "Hit Enter to Continue..." 
 
sleep 1 
 
read continue

답변

0

당신은 세미콜론으로 구분 된 파일을 생성하고 당신이 필요로하는 방식으로 데이터를 읽고 성공 열로 확산 능가 할 수

enter image description here

. 또한 column -t 명령을 제거하십시오.

은 다음과 같이 말아야 :

tail -n +2 CPU_status.csv | head -1 | awk 'BEGIN{FS="|"; OFS=";"}{print $1,$3,$16,$33,$50,$67,$81,$98}'; tail -n 50 CPU_status.csv | awk 'BEGIN{FS="|"; OFS=";"}{print $1,$3,$16,$33,$50,$67,$81,$98}'

+0

답장을 보내 주셔서 감사합니다. 슬프게도, 이것은 제가 찾고있는 해결책이 아닙니다. 나는 MS 엑셀에서 이것을 바꾸는 방법을 안다. 나는 매일 또 다시 Excel에서 편집 할 필요없이 Linux 쉘 스크립팅에서 테이블과 컬럼을 만드는 방법을 찾고 있습니다. cronjob 데이터 같은 것. –

+0

ok, 출력 파일을 생성하는 스크립트 섹션을 세미콜론으로 구분하여 수정하십시오. 나는 대답을 편집했다. 확인해주세요. –

0

펄은 읽기 및 쓰기 엑셀 .XLS 및 XLSX을 위해 편리한 CPAN 모듈을 가지고있다.

#!/home/utils/perl-5.8.8/bin/perl 
use Spreadsheet::WriteExcel; 
use warnings; 
use strict; 
# open input file (fields delimited by ',') 
my $inputfile = shift; 
my $outputfile = shift; 
open my $IN, '<', $inputfile, or die "Could not open $inputfile"; 
# Create a new Excel workbook 
my $workbook = Spreadsheet::WriteExcel->new($outputfile); 
# Add a worksheet and a row 
my $worksheet = $workbook->add_worksheet(); 
my $xlscol = my $xlsrow = 0; 
for my $line (<$IN>) { 
    print "\$line: $line"; 
    my @fields = split /,/, $line; 
    print "\@fields: @fields\n"; 
    for my $csvcol (1, 3, 16, 33, 50, 67, 81, 98) { 
     $xlscol++; 
     print "$xlsrow\t$xlscol\t$csvcol\t$fields[$csvcol]\n"; 
     $worksheet->write($xlsrow, $xlscol, $fields[$csvcol]); 
    } 
    $xlsrow++; 
} 
# Usage: writeXlsExample.pl CPU_status.csv my.xls 
# File has been written to my.xls