कमांड लाइन CSV दर्शक? [बन्द है]


308

किसी को भी लिनक्स / ओएस एक्स के लिए एक कमांड-लाइन सीएसवी दर्शक का पता है? मैं कुछ ऐसा सोच रहा हूं, lessलेकिन यह कॉलम कॉलम को अधिक पठनीय तरीके से निकालता है। (मैं ओपनऑफिस कैलस या Excel के साथ इसे खोलने के साथ ठीक होगा, लेकिन के रास्ते भी बस के लिए जबर्दस्ती कि देख जैसे मैं करने की जरूरत है डेटा पर।) क्षैतिज और ऊर्ध्वाधर स्क्रॉल करने के बाद बहुत अच्छा होगा।


चूँकि मैं जवाब नहीं दे सकता: SC-IM एक CLI दर्शक और तालिकाओं के लिए संपादक है जो CSV भी खोल सकता है। github.com/andmarti1424/sc-im
12431234123412341234123

जवाबों:


441

आप इसका उपयोग भी कर सकते हैं:

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

ध्यान दें कि प्रतिस्थापन ,,के लिए , ,दो बार किया जाता है। आप इसे केवल एक बार करते हैं, 1,,,4हो जाएगा 1, ,,4के बाद से दूसरा अल्पविराम पहले से ही मिलान किया जाता है।


2
मुझे वास्तव में यह विकल्प पसंद है - इसके बारे में जानना अच्छा है column। मैंने इसे एक लघु शेल स्क्रिप्ट बनाते हुए समाप्त किया (इसका अधिकांश हिस्सा बॉयलरप्लेट है "मैं इसका उपयोग कैसे करूँ?" और त्रुटि जाँच कोड)। github.com/benjaminoakes/utilities/blob/master/view-csv
बेंजामिन नेक

24
कॉलम के 'डेबियन जीएनयू / लिनक्स' संस्करण में 'एन-एन' विकल्प होता है: "डिफ़ॉल्ट रूप से, कॉलम कमांड -t विकल्प का उपयोग करते समय एक ही सीमांकक में कई आसन्न सीमांकक को मर्ज करेगा; यह विकल्प उस व्यवहार को अक्षम करता है। यह विकल्प है एक डेबियन जीएनयू / लिनक्स एक्सटेंशन। "
क्लोकॉप

5
यदि आपके पास कॉलम मान (उद्धृत) हैं, तो उनमें अल्पविराम हैं। इसे ठीक करने के लिए कोई भी विचार?
टीएम।

3
से 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.
ezdazuzena

8
दुर्भाग्यवश यदि किसी मान में अल्पविराम होता है, तो वह उद्धृत होने पर भी विभाजित हो जाएगा।
ffarquet

107

आप csvtool(Ubuntu पर) स्थापित कर सकते हैं

sudo apt-get install csvtool

और फिर चलाएं:

csvtool readable filename | view -

यह केवल पढ़ने योग्य विम उदाहरण के अंदर अच्छा और सुंदर बना देगा, भले ही आपके पास बहुत लंबे मूल्यों के साथ कुछ कोशिकाएं हों।


2
डेबियन-बेस डिस्ट्रोस पर नहीं उन लोगों के लिए, यह उपकरण यहां से उत्पन्न होता है: docs.camlcity.org/docs/godisrc/ocaml-csv-1.1.6.tar.gz दुर्भाग्य से "होमपेज" लिंक मृत है, और मैं डॉन 'संपूर्ण संग्रह को एक बार में डाउनलोड करने का आसान तरीका नहीं है।
सिनकोडेनाडा

9
उपकरण 100Mb +
पेड्रोसेना

6
यह उपकरण मेरे लिए Centos7 में ocaml-csvपैकेज के baseलिए उपलब्ध है
ब्राइस

72

Csvkit पर एक नजर है । यह उपकरण का एक सेट प्रदान करता है जो UNIX दर्शन का अर्थ है (जिसका अर्थ है कि वे छोटे, सरल, एकल-शुद्ध और संयुक्त हो सकते हैं)।

यहाँ एक उदाहरण है जो जर्मनी के दस सबसे अधिक आबादी वाले शहरों को मुफ्त मैक्समाइंड वर्ल्ड सिटीज़ डेटाबेस से निकालता है और परिणाम को कंसोल- रीडेबल फॉर्मेट में प्रदर्शित करता है:

$ 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 मंच स्वतंत्र है क्योंकि यह पायथन में लिखा गया है।


1
मेरे मैक पर बहुत अच्छा काम करता है। बड़ी फ़ाइलों को पढ़ने के लिए बहुत उपयोगी है।
जेम्स लिम

4
मुझे Csvkit पसंद है। csvlook <filename.csv> | कम -S
संदीप

5
सीएसवीकिट प्राप्त करने के लिए आप इसे स्थापित कर सकते हैं pip install csvkit। का आनंद लें!
ग्लोरिफोबिया

46

Tabview: लाइट पाइथन कमांड लाइन को CSV फ़ाइल व्यूअर को श्राप देता है (और अन्य सारणीबद्ध पायथन डेटा, सूचियों की सूची की तरह) यहाँ Github पर है

विशेषताएं:

  • पायथन 2.7+, 3.x
  • यूनिकोड समर्थन
  • सारणीबद्ध डेटा को आसानी से देखने के लिए स्प्रेडशीट जैसा दृश्य
  • विम-जैसे नेविगेशन (एच, जे, के, एल, जी (ऊपर), जी (नीचे), 12 जी गोटो लाइन 12, मी - मार्क, '- गोटो मार्क, आदि)
  • लगातार शीर्ष लेख पंक्ति टॉगल करें
  • स्तंभ की चौड़ाई और अंतराल को गतिशील रूप से आकार दें
  • किसी कॉलम द्वारा आरोही या अवरोही क्रमबद्ध करें। संख्यात्मक मानों के लिए 'प्राकृतिक' क्रम क्रम।
  • खोज परिणामों के बीच पूर्ण-पाठ खोज, n और p से चक्र
  • पूर्ण सेल सामग्री देखने के लिए 'दर्ज करें'
  • क्लिपबोर्ड में यैंक सेल सामग्री
  • एफ 1 या? कीबाइंडिंग के लिए
  • किसी भी सारणीबद्ध डेटा (उदाहरण के लिए सूचियों) की कल्पना करने के लिए अजगर कमांड लाइन से भी उपयोग कर सकते हैं

1
महान उपकरण। एक बड़ी फ़ाइल खोली, जिसने csvtool और openoffice को क्रैश कर दिया। बहुत तेज है।
लियोनार्डो

सफलतापूर्वक विंडोज़ पर 'पाइप इंस्टॉल टैबूव्यू' के बाद, मैं प्रोग्राम को कैसे लॉन्च करूं? मैं 'tabview file.csv' को लिनक्स पर सफलतापूर्वक प्रयोग कर सकता हूं, लेकिन विंडोज़ काम नहीं करती। धन्यवाद!
क्रिस

मुझे विश्वास नहीं होता कि शाप मॉड्यूल विंडोज पर उपलब्ध है। माफ़ करना! कोई तृतीय पक्ष मॉड्यूल उपलब्ध हो सकता है लेकिन मैंने विंडोज के लिए कोई विकास नहीं किया है।
स्कॉट हैनसेन

विवरण के लिए आपका धन्यवाद! यह उपकरण afterall का एक भयानक टुकड़ा है!
क्रिस

1
@CiroSantilli 烏坎 iro 2016 事件 ill ill, दुर्भाग्य से अभी तक नहीं। मैं उम्मीद कर रहा हूं कि जल्द ही कुछ समय को टैक्स्ट में डाल दूंगा ... यहां थोड़ी देर के लिए यह सुप्त हो गया। :(
स्कॉट हैन्सन


22

नोडज पैकेज टेफू / ट्टी-टेबल विश्व स्तर पर स्थापित किया जा सकता है ताकि इसे ठीक किया जा सके:

apt-get install nodejs
npm i -g tty-table
cat data.csv | tty-table

tecfu / tty-टेबल

यह धाराओं को भी संभाल सकता है।

अधिक जानकारी के लिए, यहां टर्मिनल उपयोग के लिए डॉक्स देखें ।


1
कृपया नीचे जाने पर एक कारण छोड़ दें। यह पैकेज काम करता है और अच्छी तरह से काम करता है।
user3751385

9
नोडज एक वेबसर्वर प्लेटफॉर्म है। आपको किसी को जंजीर से रोटी काटने की सलाह नहीं देनी चाहिए।
अधिकतम

23
नोड सीएलआई बाइंडिंग के साथ एक सामान्य उद्देश्य स्क्रिप्टिंग प्रणाली है, यह कैसे एक पर्ल वन-लाइनर या सीपीएएन के उपयोग से अलग है?
रैचेट

मैं वास्तव में इस विकल्प को पसंद करता हूं, लेकिन जब मैं इसे कम पाइप करता हूं, तो यह सही नहीं लगता है। क्या आपको पता है कि इसे कम करने के लिए कुछ अतिरिक्त करने की आवश्यकता है?
प्लैफ्राट

यदि फ़ाइल में कई कॉलम हैं (विशेष रूप से टर्मिनल स्क्रीन की क्षैतिज चौड़ाई से अधिक संभाल सकते हैं) तो यह पैकेज टूट जाता है और इसके बाद उन्हें ठीक से संरेखित नहीं करता है।
gented

10

xsv एक दर्शक से अधिक है। मैं कमांड लाइन पर अधिकांश सीएसवी कार्य के लिए सलाह देता हूं, खासकर जब बड़े डेटासेट के साथ काम करते हैं।


9

मेरा FOSS प्रोजेक्ट CSVfix आपको CSV फ़ाइलों को "ASCII कला" तालिका प्रारूप में प्रदर्शित करने की अनुमति देता है।


ठीक वही जो मेरे द्वारा खोजा जा रहा था। मुझे इसे ओएस एक्स के लिए संकलित करने की कोशिश करनी होगी। (आपके पास कुछ पैच आ सकते हैं, जो जानते हैं ...)
बेंजामिन ने

मैं उनका बहुत स्वागत करता हूँ। FOSS परियोजनाओं के थोड़ा निराशाजनक पहलुओं में से एक opf है कि कैसे कुछ लोग वास्तव में कोड का योगदान करते हैं। बेशक, मैं इसके लिए अगले व्यक्ति के रूप में दोषी हूं।

आपका CSVfix प्रोजेक्ट रेपो ब्राउज़िंग की अनुमति क्यों नहीं देता है? दूसरों के लिए यह देखना कठिन हो जाता है कि कोड में यह अधिक संभावना नहीं है कि आपको योगदान मिलता है, क्या ऐसा होता है?
डिर्क एडल्डबुलेटेल

1
मेरी ओर से आलस्य, मुझे डर है। इसके अलावा, कोड का ज़िप प्रदान करने का अर्थ है कि कोई भी इसे प्राप्त कर सकता है - अगर मैंने केवल रेपो एक्सेस प्रदान किया है, तो लोगों को एसवीएम या एचजी स्थापित करना होगा। अगर मुझे पैच मिलने लगे, तो मैं पुनर्विचार करूँगा।

आखिरी बार 2015 at02‑28 पर
बोरिस

8

अरी का जवाब आपको वह सब कुछ देता है जो आपने मांगा था। लेकिन .. अगर आप कमांड को याद नहीं रखना चाहते हैं तो आप इसे अपने ~ / .bashrc (या समतुल्य) में जोड़ सकते हैं:

csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}

यह बिलकुल वैसा ही है जैसा कि अरी के जवाब के अलावा मैंने इसे एक शेल फ़ंक्शन में लपेटा है और less -Sलाइनों के रैपिंग को रोकने के लिए विकल्प का उपयोग कर रहा हूं ( lessएक कार्यालय / ओस्केल की तरह अधिक व्यवहार करता है)।

एक नया शेल खोलें (या source ~/.bashrcअपने वर्तमान शेल में टाइप करें) और कमांड का उपयोग करके चलाएं:

csview <filename>


5
यह उद्धरणों में अल्पविराम को नहीं संभालता है।
चेंग

7

मैंने लंबे समय तक पिसविलिस के उत्तर का उपयोग किया।

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
}

मेरे लिए बेहतर काम करने का कारण यह है कि यह व्यापक स्तंभों को बेहतर तरीके से संभालता है।



3

यहाँ एक (शायद भी) सरल विकल्प है:

sed "s/,/\t/g" filename.csv | less

2
यह मेरा पहला झुकाव था। लेकिन आपको अपने कॉलम के लिए सबसे लंबे मान से मिलान करने के लिए पर्याप्त टैब सम्मिलित करना होगा ... थोड़ा जटिल होना शुरू हो गया और मुझे लगा कि "किसी और ने यह पहले ही कर लिया होगा।"
बेंजामिन ने 20

2
आप इस तथ्य को भी अनदेखा कर रहे हैं कि अल्पविराम उद्धृत किया जा सकता है और इसलिए विभाजक नहीं। (अन्य बातों के बीच)
एरियल एलन

3

फिर भी एक और बहुआयामी सीएसवी (और न केवल) हेरफेर उपकरण: मिलर । अपने स्वयं के विवरण से, यह awk, sed, cut, join और सॉर्ट के लिए नाम-अनुक्रमित डेटा जैसे CSV, TSV और सारणीबद्ध JSON है। (जीथब रिपॉजिटरी से लिंक: https://github.com/johnkerl/miller )


2

मैंने इस CSv_view.sh को कमांड लाइन से CSV स्वरूपित करने के लिए लिखा है, यह प्रत्येक कॉलम की इष्टतम चौड़ाई का पता लगाने के लिए पूरी फाइल को पढ़ता है (इसके लिए पर्ल की आवश्यकता है, यह मानता है कि खेतों में कोई अल्पविराम नहीं है, यह भी कम उपयोग करता है):


#!/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


2

TxtSushi का उपयोग आप कर सकते हैं:

csvtopretty filename.csv | less -S

डाउनवोट को एक पंक्ति स्थापित करने की प्रक्रिया नहीं होने के लिए। मेरे पास इसे संकलित करने का समय नहीं है :(। यदि आप एक ऐसा पैकेज प्रदान कर सकते हैं जो भयानक होगा।
Masterxilo

@ मास्टरएक्सिलो डाउन करने का वैध कारण नहीं है। कई पैकेजों को आज स्थापित करने के लिए कई चरणों की आवश्यकता है। इसके अलावा, यह शायद टिप्पणी लिखने की तुलना में स्थापित करने के लिए तेज़ होगा।
युवल मेशर

2

टैबव्यू वास्तव में अच्छा है। 200 + एमबी फ़ाइलों के साथ काम किया जो अच्छी तरह से प्रदर्शित किया गया था जो लिबर ऑफिस के साथ-साथ जीवीवी में सीएसवी प्लगइन के साथ छोटी थीं।

एनाकोंडा संस्करण यहां उपलब्ध है: https://anaconda.org/bioconda/tabview


2

मैंने इन (और अन्य) उद्देश्यों के लिए सारणीबद्ध बनाया है। के साथ स्थापित करें

[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 ,

यह भी काम करता है कि डेटा कॉमा के अलावा किसी और चीज़ से अलग किया गया है। सबसे महत्वपूर्ण बात यह है कि यह सीमांकक को संरक्षित करता है ताकि आप अपने ASCII तालिकाओं को अपने [मार्कडाउन, CSV, LaTeX] सिंटैक्स की बलि दिए बिना भी इसका उपयोग कर सकें।


Collecting tablify Could not find a version that satisfies the requirement tablify (from versions: ) No matching distribution found for tablify
मास्टरएक्सिलो

@masterxilo मैं इसका नाम बदल कर रखूँगा tablign। वर्णन में निश्चित।
निको श्लोमर

1
बिल्कुल सही, बस काम करता है।
मास्टरएक्सिलो

0

मैंने ग्रोवी में सिर्फ इस उद्देश्य के लिए एक स्क्रिप्ट, व्यूटैब लिखा । आप इसे लागू करते हैं:

viewtab filename.csv

यह मूल रूप से एक सुपर-लाइट स्प्रेडशीट है जिसे कमांड लाइन से मंगवाया जा सकता है, CSV और टैब से अलग की गई फ़ाइलों को हैंडल करता है, बहुत बड़ी फ़ाइलों को पढ़ सकता है जिन्हें एक्सेल और नंबर्स चोक करते हैं, और बहुत तेज है। यह केवल-पाठ होने के अर्थ में कमांड-लाइन नहीं है, लेकिन यह प्लेटफ़ॉर्म स्वतंत्र है और संभवतः कई लोगों के लिए बिल फिट होगा जो कमांड लाइन के वातावरण में काम करते समय कई या बड़ी CSV फ़ाइलों का निरीक्षण करने की समस्या का समाधान खोज रहे हैं। ।

स्क्रिप्ट और इसे कैसे स्थापित किया जाए, इसका वर्णन यहां दिया गया है:

http://bayesianconspiracy.blogspot.com/2012/06/quick-csvtab-file-viewer.html


0

अजगर में यह छोटी कमांड लाइन स्क्रिप्ट है: https://github.com/rgrp/csv2ascii/blob/master/csv2ascii.py

बस अपने रास्ते में डाउनलोड और जगह। उपयोग की तरह है

csv2ascii.py [options] csv-file-path

सीएसवी फ़ाइल csv-file-pathको एससीआई फॉर्म में कन्वर्ट करें , परिणाम को स्टडआउट पर लौटाएं। अगर csv-file-path= '-' तो स्टडिन से पढ़ें।

विकल्प:

  -h, --help इस मदद संदेश और बाहर निकलें दिखाएँ
  -w WIDTH, - बैंडविड्थ = WIDTH
                        एससीआई आउटपुट की चौड़ाई
  -c रंग, - कॉलम = रंग
                        केवल इस कॉलम को प्रदर्शित करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.