CSVfox
Gets the job done.

Szybki start - prosty sposób

Ten program jest używany jak zwykłe polecenie w interfejsie CLI systemu Windows (PowerShell, polecenie, plik wsadowy). Odczytuje tabele CSV, zmienia je na różne sposoby zgodnie z parametrami wiersza poleceń, łączy je ze sobą lub filtruje przed wyprowadzeniem.

Krótko mówiąc, to jest to, co muszą Państwo wiedzieć, aby rozpocząć:
  • Wszystkie polecenia zaczynają się od znaku plus (+), znaku minus (-) lub znaku procentu (%).
  • We wszystkich poleceniach prefiks "+" (plus) oznacza odczyt lub przetwarzanie tabeli wejściowej, a prefiks "-" (minus) zmodyfikuje tabelę wyjściową. Prefiks "%" (procent) ma inne zastosowanie.
  • Najczęściej polecenie zawiera nazwę kolumny lub listę nazw kolumn i/lub znak "=" (znak równości), po którym następuje wyrażenie lub lista wyrażeń.
  • Ponadto pierwszy parametr, który nie wygląda jak polecenie, oznacza plik wejściowy, a ostatni oznacza plik wyjściowy. (Można to zastąpić, deklarując plik wejściowy i plik wyjściowy jawnie za pomocą "+in= filepath" i/lub "-out= filepath").
  • Dostęp do pól danych CSV można uzyskać za pomocą nazw kolumn w nawiasach kwadratowych, w następujący sposób: [Moje pole], z ich indeksem jak [3] lub w "stylu Excela" jak [A]. Ogólnie rzecz biorąc, zawartość pól w pierwszym wierszu danych jest interpretowana jako nazwy kolumn.
  • Nazwy kolumn mogą zawierać spacje, więc podczas uzyskiwania do nich dostępu w wierszu poleceń lepiej umieścić je w podwójnych cudzysłowach, aby zapobiec rozerwaniu parametru wiersza poleceń.

CSV Transformacja tabeli w interfejsie CLI

Zmiana formatu tabeli CSV

Poniższe polecenie zmienia ogranicznik pola CSV na inny znak, z przecinka (,) na średnik (;).

Jest to nieprzetworzona zawartość tabeli CSV "people_comma.csv":

Name,Age,Eye Color,Hair color Anna,27,brown,black Harald,59,grey,blonde; now grey Peter,38,"Left: brown, right: blue",red

Teraz wpiszemy to polecenie:
CSVfox people_comma.csv +d=, -d=; people_semicolon.csv

A to będzie wynikowa tabela CSV "people_semicolon.csv":
Name;Age;Eye Color;Hair color Anna;27;brown;black Harald;59;grey;"blonde; now grey" Peter;38;Left: brown, right: blue;red

Proszę również zauważyć, że zgodnie ze standardem CSV wszystkie pola zawierające rzeczywisty znak ogranicznika zostaną automatycznie otoczone znakami podwójnego cudzysłowu.

Zmiana kolejności pól danych CSV

Dostęp do pól danych CSV można uzyskać, podając nazwy pól w nawiasach kwadratowych, np: [Moje pole] lub z ich indeksem, jak [3].

People.csv
NameAgeEye ColorHair color
Anna27brownblack
Harald59greyblonde; now grey
Peter38Left: brown, right: bluered

Wyliczenie kolumn wyjściowych za pomocą polecenia "-columns" spowoduje zmianę kolejności kolumn zgodnie z definicją. Kolumny nie wymienione w tym poleceniu zostaną pominięte.

Tak więc uporządkowanie zostanie wykonane w następujący sposób:
CSVfox People.csv -columns=[Name],["Eye Color"],[Age] People_rearr.csv

Będzie to wynikowa tabela CSV:

People_rearr.csv
NameEye ColorAge
Annabrown27
Haraldgrey59
PeterLeft: brown, right: blue38

Przeliczanie pola danych CSV

To jest tabela "Articles.csv", zbiór niektórych ubrań na sprzedaż.

Articles.csv
ArtNoArticle NamePriceSize
348593485Long Sleeve Business Shirt65.00XX
585048534Trousers70.00XL
459845414Business Jacket85.00XL
524525257Fine Leather Shoes235.00EU46

Teraz sklep podniesie wszystkie ceny o 20%.
Nowe ceny zostaną wstawione z dokładnością do 2 miejsc po przecinku:
csvfox Articles.csv +set[Price]={([Price]+20%).2} NewPrices.csv

NewPrices.csv
ArtNoArticle NamePriceSize
348593485Long Sleeve Business Shirt78.00XXL
585048534Trousers84.00XL
459845414Business Jacket102.00XL
524525257Fine Leather Shoes282.00EU46

Korzystanie z pliku "job"


(brakujący przykład)

Działa to linia po linii. Najpierw odczytywany jest wiersz nagłówka (jeśli istnieje) i wykrywane są wszystkie nazwy pól.
Następnie wiersze tabeli są odczytywane jeden po drugim, a każdy wiersz jest przetwarzany polecenie po poleceniu.

Dostęp do pól można uzyskać za pomocą ich nazw w nawiasach kwadratowych, takich jak ten: [My Field], lub za pomocą indeksu, takiego jak [i]. Można je modyfikować, wstawiać lub usuwać, zmieniać ich nazwy, zmieniać ich kolejność lub obliczać nowe.

Dodatkowe pola z innych tabel mogą zostać połączone, a cała tabela może zostać podzielona (sformatowana) na nowo ułożone wiersze pochodne.

Na koniec tabela zostanie zapisana pod nową nazwą.

CSVfox Jest również odpowiedni do automatyzacji, takiej jak użycie w plikach wsadowych lub skryptach PowerShell, więc powinien być uruchamiany zgodnie z harmonogramem przez system operacyjny, taki jak Cron lub Harmonogram zadań.
Bardziej złożone polecenia lub konfiguracje mogą być łączone jako plik " job ", do zastosowania i ponownego użycia w różnych sytuacjach.

Więcej przykładów

csvfox infile.csv +e=utf-8 +d=";" -e=Windows-1252 -d=pipe outfile.csv
To polecenie zmienia format pliku CSV.
Odczytuje infile.csv, przyjmując kodowanie UTF-8 i średnik jako separator. Następnie zapisuje dane do outfile.csv, zmieniając separatory na "|" i kodowanie na ANSI (Windows).
Proszę zobaczyć także ±encoding i ±delimiter.
csvfox prices.csv +e=windows-1252 -set[Price]="{([Price]+20%),2}" -e=utf-8 newprices.csv
Powoduje to ponowne obliczenie pola numerycznego.
Odczytuje sformatowany w systemie Windows plik CSV "prices.csv", zwiększa istniejącą kolumnę CSV Price o 20 procent i formatuje wynik z przecinkiem dziesiętnym i dwoma miejscami po przecinku. Następnie zapisuje wszystkie dane do pliku "newprices.csv" przy użyciu UTF-8.
Proszę również zobaczyć Calculating with Numeric CSV Fields.
csvfox newprices.csv -add["Special Offer Text"]="Just for you: [Price]!" specialoffers.csv
To polecenie dołącza nową kolumnę i wypełnia ją tekstem.
Dołącza nową kolumnę Special Offer Text do tabeli CSV i wstawia tam tekst zawierający zawartość Price.
Proszę zobaczyć także Expressions and their Resolving.
csvfox cities.csv %merge[Name]=[Location]@attractions.csv cityattractions.csv
Ten przykład łączy dwa pliki.
Wzbogaca dane w pliku " cities . csv " o wszystkie pola atrakcji wymienione w pliku "attractions.csv", gdzie kolumna Locations w pliku "attractions.csv " odpowiada polu Name w pliku "cities.csv". Wynikowe dane zostaną zapisane w pliku "cityattractions.csv".
Proszę również zobaczyć %merge.
Under construction, coming soon