답변:
이것을 사용할 수도 있습니다 :
column -s, -t < somefile.csv | less -#2 -N -S
column
매우 편리한 표준 유닉스 프로그램입니다-각 열의 적절한 너비를 찾고 텍스트를 멋진 형식의 표로 표시합니다.
참고 : 빈 필드가있을 때마다 일종의 자리 표시자를 넣어야합니다. 그렇지 않으면 열이 다음 열과 병합됩니다. 다음 예제 sed
는 자리 표시자를 삽입 하는 데 사용하는 방법을 보여줍니다 .
$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1 2 3 4 5
1 5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
,,
for 의 대체는 , ,
두 번 수행됩니다. 당신은 한 번만 수행하면 1,,,4
될 것입니다 1, ,,4
두 번째 쉼표가 이미 일치하기 때문이다.
column
. 나는 이것을 짧은 쉘 스크립트로 만들었습니다 (대부분이 "어떻게 사용합니까?"와 오류 검사 코드입니다). github.com/benjaminoakes/utilities/blob/master/view-csv
man column
:-n By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
다음을 csvtool
통해 (우분투에서) 설치할 수 있습니다
sudo apt-get install csvtool
그런 다음 다음을 실행하십시오.
csvtool readable filename | view -
이것은 매우 긴 값을 가진 셀이 있더라도 읽기 전용 vim 인스턴스 내부에서 멋지고 예쁘게 만듭니다.
ocaml-csv
base
csvkit을 살펴 보십시오 . UNIX 철학을 따르는 도구 세트를 제공합니다 (작고 단순하며 단일 용도이며 결합 될 수 있음).
다음은 무료 Maxmind World Cities 데이터베이스 에서 독일에서 가장 인구가 많은 도시 10 곳을 추출 하여 결과를 콘솔에서 읽을 수있는 형식으로 표시하는 예입니다.
$ csvgrep -e iso-8859-1 -c 1 -m "de" worldcitiespop | csvgrep -c 5 -r "\d+"
| csvsort -r -c 5 -l | csvcut -c 1,2,4,6 | head -n 11 | csvlook
-----------------------------------------------------
| line_number | Country | AccentCity | Population |
-----------------------------------------------------
| 1 | de | Berlin | 3398362 |
| 2 | de | Hamburg | 1733846 |
| 3 | de | Munich | 1246133 |
| 4 | de | Cologne | 968823 |
| 5 | de | Frankfurt | 648034 |
| 6 | de | Dortmund | 594255 |
| 7 | de | Stuttgart | 591688 |
| 8 | de | Düsseldorf | 577139 |
| 9 | de | Essen | 576914 |
| 10 | de | Bremen | 546429 |
-----------------------------------------------------
Csvkit은 Python으로 작성되었으므로 플랫폼 독립적입니다.
pip install csvkit
됩니다. 즐겨!
Tabview : 경량 python curses 명령 줄 CSV 파일 뷰어 (및 목록 목록과 같은 다른 테이블 형식 파이썬 데이터)는 Github에 있습니다.
nodejs 패키지 tecfu / tty-table 은 전체적으로 정확하게 설치하기 위해 설치 될 수 있습니다 :
apt-get install nodejs
npm i -g tty-table
cat data.csv | tty-table
스트림을 처리 할 수도 있습니다.
자세한 내용은 여기에서 터미널 사용에 대한 문서를 참조 하십시오 .
내 FOSS 프로젝트 CSVfix를 사용하면 "ASCII art"테이블 형식으로 CSV 파일을 표시 할 수 있습니다.
Ofri의 답변은 귀하가 요청한 모든 것을 제공합니다. 그러나 .. 명령을 기억하지 않으려면 ~ / .bashrc (또는 이에 상응하는)에이 명령을 추가 할 수 있습니다.
csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}
이것은 쉘 함수로 less -S
감싸고 줄 바꿈을 중지하는 옵션을 사용한다는 점을 제외하고 Ofri의 대답과 정확히 동일 합니다.less
사무실 / oocalc처럼 동작합니다).
새 쉘을 열거 나 source ~/.bashrc
현재 쉘을 입력 하고 다음을 사용하여 명령을 실행하십시오.
csview <filename>
나는 pisswillis의 대답을 오랫동안 사용했습니다.
csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}
그러나 http://chrisjean.com/2011/06/17/view-csv-data-from-the-command-line 에서 찾은 일부 코드를 결합 하여 나에게 더 좋습니다.
csview()
{
local file="$1"
cat "$file" | sed -e 's/,,/, ,/g' | column -s, -t | less -#5 -N -S
}
그것이 나를 위해 더 잘 작동하는 이유는 넓은 열을 더 잘 처리하기 때문입니다.
tblless
에 태뷸의 패키지 유닉스 랩 column
명령을, 또한 숫자 열을 정렬합니다.
간단한 옵션은 다음과 같습니다.
sed "s/,/\t/g" filename.csv | less
또 다른 다기능 CSV (및뿐만 아니라) 조작 도구 : Miller . 자체 설명에서 CSV, TSV 및 테이블 형식 JSON과 같은 이름 인덱스 데이터에 대한 awk, sed, cut, join 및 sort와 같습니다. (github 저장소 링크 : https://github.com/johnkerl/miller )
명령 줄에서 CSV 형식을 지정하기 위해이 csv_view.sh를 작성했습니다. 이는 전체 열을 읽고 각 열의 최적 너비를 계산합니다 (perl이 필요하고 필드에 쉼표가 없으며 가정도 적습니다).
#!/bin/bash
perl -we '
sub max( @ ) {
my $max = shift;
map { $max = $_ if $_ > $max } @_;
return $max;
}
sub transpose( @ ) {
my @matrix = @_;
my $width = scalar @{ $matrix[ 0 ] };
my $height = scalar @matrix;
return map { my $x = $_; [ map { $matrix[ $_ ][ $x ] } 0 .. $height - 1 ] } 0 .. $width - 1;
}
# Read all lines, as arrays of fields
my @lines = map { s/\r?\n$//; [ split /,/ ] } ;
my $widths =
# Build a pack expression based on column lengths
join "",
# For each column get the longest length plus 1
map { 'A' . ( 1 + max map { length } @$_ ) }
# Get arrays of columns
transpose
@lines
;
# Format all lines with pack
map { print pack( $widths, @$_ ) . "\n" } @lines;
' $1 | less -NS
Tabview는 정말 좋습니다. 200 개 이상의 MB 파일을 사용하여 LibreOffice 및 gvim의 csv 플러그인에 버그가있는 파일을 멋지게 표시했습니다.
Anaconda 버전은 https://anaconda.org/bioconda/tabview에서 제공됩니다.
나는 이러한 (그리고 다른) 목적을 위해 tablign 을 만들었습니다 . 함께 설치
[sudo -H] pip3 install tablign
과
$ cat test.csv
Header1,Header2,Header3
Pizza,Artichoke dip,Bob's Special of the Day
BLT,Ham on rye with the works,
$ tablign test.csv
Header1 , Header2 , Header3
Pizza , Artichoke dip , Bob's Special of the Day
BLT , Ham on rye with the works ,
데이터가 쉼표 이외의 것으로 분리 된 경우에도 작동합니다. 가장 중요한 것은 구분 기호를 유지 하므로 [Markdown, CSV, LaTeX] 구문을 그대로 유지 하면서 ASCII 테이블의 스타일을 지정할 수도 있습니다.
Collecting tablify Could not find a version that satisfies the requirement tablify (from versions: ) No matching distribution found for tablify
tablign
. 설명에서 수정되었습니다.
이 목적을 위해 Groovy에서 viewtab 스크립트를 작성했습니다 . 당신은 그것을 다음과 같이 호출합니다 :
viewtab filename.csv
기본적으로 명령 줄에서 호출하고 CSV 및 탭으로 구분 된 파일을 처리하며 Excel과 Numbers가 질식 한 매우 큰 파일을 읽을 수 있으며 매우 빠릅니다. 텍스트 전용이라는 의미에서 명령 줄은 아니지만 플랫폼에 독립적이며 명령 줄 환경에서 작업하는 동안 많은 또는 큰 CSV 파일을 신속하게 검사하는 문제에 대한 해결책을 찾는 많은 사람들에게 적합합니다. .
스크립트 및 설치 방법은 다음과 같습니다.
http://bayesianconspiracy.blogspot.com/2012/06/quick-csvtab-file-viewer.html
파이썬에는 다음과 같은 짧은 명령 행 스크립트가 있습니다 : https://github.com/rgrp/csv2ascii/blob/master/csv2ascii.py
다운로드하여 경로에 배치하십시오. 사용법은
csv2ascii.py [options] csv-file-path
csv 파일 csv-file-path
을 ASCII 형식으로 변환 하여 stdout에 결과를 반환하십시오. 경우 csv-file-path
=이 '-'다음 표준 입력에서 읽습니다.
옵션 :
-h, --help이 도움말 메시지를 표시하고 종료 -w WIDTH, --width = WIDTH ASCII 출력 너비 -c COLUMNS, --columns = COLUMNS 이 열 수만 표시