Dit is de opdracht tablifyp die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
tablify - verander een tekstbestand met scheidingstekens in een teksttabel
KORTE INHOUD
tablify [opties] bestand
Opties:
-h|--help Toon help
-c|--comment Definieer het begin van een (enkelregelige) opmerking
-n|--no-headers Neem aan dat de eerste regel data is, geen headers
--no-pager Gebruik $ENV{'PAGER'} niet, zelfs niet als dit is gedefinieerd
--strip-aanhalingstekens Strip " of ' rond velden
-l|--list Lijst van de velden in het bestand (voor gebruik met -f)
-f|--fields=f1[,f2] Toon alleen velden in door komma's gescheiden lijst;
indien gebruikt in combinatie met "no-headers"
de lijst moet veldnummers zijn (beginnend bij 1);
anders zouden veldnamen moeten zijn
-w|waar=f v Pas de "cmp" Perl-operator toe om de uitvoer te beperken
waarbij veld "f" overeenkomt met de waarde "v"; aanvaardbaar
operators omvatten ==, eq, >, >=, <=, en =~
-v|--verticaal Records verticaal weergeven
-i|--limit=n Beperk tot gegeven aantal records
--fs=x Gebruik "x" als het veldscheidingsteken
(standaard is het tabblad "\t")
--rs=x Gebruik "x" als recordscheidingsteken
(standaard is nieuwe regel "\n")
--as-html Maak een HTML-tabel in plaats van platte tekst
--headers Door komma's gescheiden lijst met overeenkomende namen
het aantal kolommen
PRODUCTBESCHRIJVING
Dit script is in wezen een snelle manier om een tekstbestand met scheidingstekens te ontleden en te bekijken als een
mooie ASCII-tabel. Door alleen bepaalde te selecteren velden, in dienst van een met de meeste clausule om alleen
selecteer records waar een veld overeenkomt met een waarde, en gebruik de begrenzing om er maar een paar te zien
de output, heb je bijna een mini-database front-end voor een eenvoudig tekstbestand.
Voorbeelden
Gegeven een gegevensbestand als dit:
naam,rang,serial_no,is_living,leeftijd
George, generaal, 190293,0,64
Dwight,Algemeen,908348,0,75
Attila, Hun,,0,56
Tojo, Keizer,,0,87
Tommy,Algemeen,998110,1,54
Om de velden te vinden waarnaar u kunt verwijzen, gebruikt u de lijst optie:
$ tablify --fs ',' -l mensen.dat
+-----------+----------+
| Veld nr. | Veld |
+-----------+----------+
| 1 | naam |
| 2 | rang |
| 3 | seriële_nr |
| 4 | is_leeft |
| 5 | leeftijd |
+-----------+----------+
Gebruik de om alleen de naam en serienummers te extraheren velden optie:
$ tablify --fs ',' -f naam,serial_no people.dat
+--------+----------+
| naam | serial_no |
+--------+----------+
| Joris | 190293 |
| Dwight | 908348 |
| Atilla | |
| Tojo | |
| Tommy | 998110 |
+--------+----------+
5 records geretourneerd
Om het eerste tot en met derde veld en het vijfde veld te extraheren (waar de veldnummers beginnen)
bij "1" -- tip: gebruik de lijst optie om snel veldnummers te bepalen), gebruik deze syntaxis
voor velden:
$ tablify --fs ',' -f 1-3,5 mensen.dat
+--------+---------+-----------+-----+
| naam | rang | serial_no | leeftijd |
+--------+---------+-----------+-----+
| George | Algemeen | 190293 | 64 |
| Dwight | Algemeen | 908348 | 75 |
| Atilla | Hun | | 56 |
| Tojo | Keizer | | 87 |
| Tommy | Algemeen | 998110 | 54 |
+--------+---------+-----------+-----+
5 records geretourneerd
Gebruik a . om alleen die met zes serienummers te selecteren met de meeste clausule:
$ tablify --fs ',' -w 'serial_no=~/^\d{6}$/' mensen.dat
+--------+---------+-----------+-----------+------ +
| naam | rang | serial_no | is_living | leeftijd |
+--------+---------+-----------+-----------+------ +
| George | Algemeen | 190293 | 0 | 64 |
| Dwight | Algemeen | 908348 | 0 | 75 |
| Tommy | Algemeen | 998110 | 1 | 54 |
+--------+---------+-----------+-----------+------ +
3 records geretourneerd
Om het record van Dwight te vinden, doe je dit:
$ tablify --fs ',' -w 'name eq "Dwight"' people.dat
+--------+---------+-----------+-----------+------ +
| naam | rang | serial_no | is_living | leeftijd |
+--------+---------+-----------+-----------+------ +
| Dwight | Algemeen | 908348 | 0 | 75 |
+--------+---------+-----------+-----------+------ +
1 record terug
Om de naam te vinden van alle mensen met een serienummer die in leven zijn:
$ tablify --fs ',' -f naam -w 'is_living==1' -w 'serial_no>0' people.dat
+-------+
| naam |
+-------+
| Tommy |
+-------+
1 record terug
Om buiten het programma te filteren en de resultaten eenvoudig op te maken, gebruikt u "-" als laatste argument
om het lezen van STDIN te forceren (en waarschijnlijk geen headers aan te nemen):
$ grep Algemeen people.dat | tablify --fs ',' -f 1-3 --no-headers -
+---------+--------+--------+
| Veld1 | Veld2 | Veld3 |
+---------+--------+--------+
| Algemeen | 190293 | 0 |
| Algemeen | 908348 | 0 |
| Algemeen | 998110 | 1 |
+---------+--------+--------+
3 records geretourneerd
Als u te maken hebt met gegevens zonder veldnamen, kunt u "geen headers" specificeren en vervolgens verwijzen naar:
velden op nummer (beginnend bij één), bijvoorbeeld:
$ staart -5 mensen.dat | tablify --fs ',' --no-headers -w '3 eq "Algemeen"' -
+--------+---------+--------+-------+--------+
| Veld1 | Veld2 | Veld3 | Veld4 | Veld5 |
+--------+---------+--------+-------+--------+
| George | Algemeen | 190293 | 0 | 64 |
| Dwight | Algemeen | 908348 | 0 | 75 |
| Tommy | Algemeen | 998110 | 1 | 54 |
+--------+---------+--------+-------+--------+
3 records geretourneerd
Als uw bestand veel velden heeft die moeilijk te zien zijn op het scherm, overweeg dan om de
verticale weergave met "-v" of "--vertical", bijvoorbeeld:
$ tablify --fs ',' -v --limit 1 people.dat
*********** Record 1 ***********
naam: George
rang: Algemeen
serienummer: 190293
is_levend: 0
leeftijd : 64
1 record terug
Gebruik tablifyp online met onworks.net-services