Skip to content

Commit 5d093e2

Browse files
petrischhustcer
andauthored
DE translation for loading data and working with strings (#512)
* DE translation for loading data and wirking with strings * Update i18n-meta.json Co-authored-by: Justin Ma <[email protected]>
1 parent d75b360 commit 5d093e2

File tree

4 files changed

+463
-2
lines changed

4 files changed

+463
-2
lines changed

.vuepress/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ module.exports = {
223223
'thinking_in_nushell',
224224
'moving_around',
225225
'types_of_data',
226+
'loading_data',
227+
'working_with_strings',
226228
'konfiguration',
227229
'environment',
228230
'3rdpartyprompts',

de/book/loading_data.md

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
# Laden von Daten
2+
3+
Im letzten Kapitel wurden Befehle wie [`ls`](/book/commands/ls.md), [`ps`](/book/commands/ps.md),
4+
[`date`](/book/commands/date.md), and [`sys`](/book/commands/sys.md) vorgestellt um Informationen
5+
über Dateien, Prozesse, Zeiten und die Systemumgebung selber zu laden.
6+
Jeder Befehl ergibt eine Tabelle aus, mit der gearbeitet werden kann.
7+
Es gibt jedoch noch andere Möglichkeiten Tabellen aus Daten zu erhalten.
8+
9+
## Dateien öffnen
10+
11+
Einer der mächtigsten Befehle in Nu um mir Daten zu arbeite ist der [`open`](/book/commands/open.md) Befehl.
12+
Er ist ein Multi-Werkzeug, welcher mit verschiedensten Datenformaten umgehen kann.
13+
Hier zum Beispiel was passiert, wenn eine json Datei geöffnet wird:
14+
15+
```
16+
> open editors/vscode/package.json
17+
──────────────────┬───────────────────────────────────────────────────────────────────────────────
18+
name │ lark
19+
description │ Lark support for VS Code
20+
author │ Lark developers
21+
license │ MIT
22+
version │ 1.0.0
23+
repository │ [row type url]
24+
publisher │ vscode
25+
categories │ [table 0 rows]
26+
keywords │ [table 1 rows]
27+
engines │ [row vscode]
28+
activationEvents │ [table 1 rows]
29+
main │ ./out/extension
30+
contributes │ [row configuration grammars languages]
31+
scripts │ [row compile postinstall test vscode:prepublish watch]
32+
devDependencies │ [row @types/mocha @types/node tslint typescript vscode vscode-languageclient]
33+
──────────────────┴───────────────────────────────────────────────────────────────────────────────
34+
```
35+
36+
Ähnlich wie beim [`ls`](/book/commands/ls.md) Befehl, bekommen wir mehr als nur Text
37+
(oder einen Stream von bytes) zurück, wenn wir einen Dateityp öffnen, den Nu versteht.
38+
Hier wurde ein "package.json" von einem JavaScript Projekt geöffnet. Nu erkennt den json text
39+
und parst die Daten in eine Tabelle.
40+
41+
Soll nur die Version aus dem Projekt angezeigt werden, kann mit dem [`get`](/book/commands/get.md)
42+
direkt diese Information herausgelesen werden.
43+
44+
```
45+
> open editors/vscode/package.json | get version
46+
1.0.0
47+
```
48+
49+
Nu unterstützt aktuell die folgenden Formate um Daten direkt als Tabelle zu öffnen:
50+
51+
- csv
52+
- eml
53+
- ics
54+
- ini
55+
- json
56+
- nuon
57+
- ods
58+
- ssv
59+
- toml
60+
- tsv
61+
- url
62+
- vcf
63+
- xlsx / xls
64+
- xml
65+
- yaml / yml
66+
67+
Was aber passiert, wenn eine Text Datei geladen wird, die keinem der angegebenen Formate entspricht?
68+
69+
```
70+
> open README.md
71+
```
72+
73+
Die Datei wird wie gewohnt als Text ausgegeben.
74+
75+
Im Hintergrund sieht Nu eine reine Text Datei als einen grossen String.
76+
Wie man mit einem String umgeht und die benötigten Daten herauszieht, steht im nächsten Kapitel.
77+
78+
## Mit Strings umgehen
79+
80+
Ein wichtiger Teil der Arbeit mit Nu ist es, mit externen Daten um zu gehen, die Nu nicht versteht.
81+
Oft werden diese Daten als String repräsentiert.
82+
83+
Zum Beispiel wie in dieser Datei:
84+
85+
```
86+
> open people.txt
87+
Octavia | Butler | Writer
88+
Bob | Ross | Painter
89+
Antonio | Vivaldi | Composer
90+
```
91+
92+
Jeder Datenpunkt ist durch ein pipe ('|') Symbol getrennt. Und jede Person steht auf einer
93+
eigenen Zeile. Nu kennt standardmässig kein Dateiformat, welches pipe-getrennt ist,
94+
weshalb diese Datei von Hand geparst werden muss.
95+
96+
Zuerst wird die Datei so geladen, dass jede Zeile für sich verarbeitet werden kann:
97+
98+
```
99+
> open people.txt | lines
100+
───┬──────────────────────────────
101+
0 │ Octavia | Butler | Writer
102+
1 │ Bob | Ross | Painter
103+
2 │ Antonio | Vivaldi | Composer
104+
───┴──────────────────────────────
105+
```
106+
Dadurch wird bereits wieder eine Tabelle ausgegeben. Im nächsten Schritt sollen die Spalten
107+
in etwas brauchbares aufgeteilt werden.
108+
Dafür verwenden wir den [`split`](/book/commands/split.md) Befehl. Wie der Name schon verräht,
109+
kann damit ein String durch ein Trennzeichen aufgesplittet oder aufgetrennt werden.
110+
Mit dem `column` Unterbefehl wird der Inhalt über mehrere Spalten aufgeteilt.
111+
Als Parameter reicht das Trennzeichen, der Rest ist automatisch:
112+
113+
```
114+
> open people.txt | lines | split column "|"
115+
───┬──────────┬───────────┬───────────
116+
# │ column1 │ column2 │ column3
117+
───┼──────────┼───────────┼───────────
118+
0 │ Octavia │ Butler │ Writer
119+
1 │ Bob │ Ross │ Painter
120+
2 │ Antonio │ Vivaldi │ Composer
121+
───┴──────────┴───────────┴───────────
122+
```
123+
124+
Das sieht _fast_ korrekt aus.Es sieht so aus, als ob sich noch eine zusätzliche Lücke eingeschlichen hat.
125+
Mit dem [`trim`](/book/commands/str_trim.md) Befehl wird dieser beseitigt:
126+
127+
```
128+
> open people.txt | lines | split column "|" | str trim
129+
───┬─────────┬─────────┬──────────
130+
# │ column1 │ column2 │ column3
131+
───┼─────────┼─────────┼──────────
132+
0 │ Octavia │ Butler │ Writer
133+
1 │ Bob │ Ross │ Painter
134+
2 │ Antonio │ Vivaldi │ Composer
135+
───┴─────────┴─────────┴──────────
136+
```
137+
138+
139+
Nicht schlecht. Der [`split`](/book/commands/split.md) Befehl gibt nicht nur brauchbare Daten zurück,
140+
sondern bezeichnet auch noch standardmässig die Spaltennamen:
141+
142+
```
143+
> open people.txt | lines | split column "|" | str trim | get column1
144+
───┬─────────
145+
0 │ Octavia
146+
1 │ Bob
147+
2 │ Antonio
148+
───┴─────────
149+
```
150+
151+
Die Spalten können jedoch auch benannt werden:
152+
153+
```
154+
> open people.txt | lines | split column "|" first_name last_name job | str trim
155+
───┬────────────┬───────────┬──────────
156+
# │ first_name │ last_name │ job
157+
───┼────────────┼───────────┼──────────
158+
0 │ Octavia │ Butler │ Writer
159+
1 │ Bob │ Ross │ Painter
160+
2 │ Antonio │ Vivaldi │ Composer
161+
───┴────────────┴───────────┴──────────
162+
```
163+
164+
Jetzt da die Daten in einer Tabelle sind, können alle Befehle, die wir davor schon auf Tabellen
165+
angewendet haben wiederverwenden:
166+
167+
```
168+
> open people.txt | lines | split column "|" first_name last_name job | str trim | sort-by first_name
169+
───┬────────────┬───────────┬──────────
170+
# │ first_name │ last_name │ job
171+
───┼────────────┼───────────┼──────────
172+
0 │ Antonio │ Vivaldi │ Composer
173+
1 │ Bob │ Ross │ Painter
174+
2 │ Octavia │ Butler │ Writer
175+
───┴────────────┴───────────┴──────────
176+
```
177+
178+
Weitere Befehle, mit denen Texte aus Strings bearbeitet werden können sind:
179+
180+
- `str`
181+
- [`lines`](/book/commands/lines.md)
182+
- [`size`](/book/commands/size.md)
183+
184+
Es gibt ausserdem einige Hilfsbefehle, die verwendet werden können um mit Daten umzugehen,
185+
die Nu eigentlich verstehen sollte. Zum Beispiel wenn eine Rust lock Datei geöffnet wird:
186+
187+
```
188+
> open Cargo.lock
189+
# This file is automatically @generated by Cargo.
190+
# It is not intended for manual editing.
191+
[[package]]
192+
name = "adhoc_derive"
193+
version = "0.1.2"
194+
```
195+
196+
Eine "Cargo.lock" Datei ist eigentlich eine .toml Datei, aber die Dateiendung ist nicht .toml.
197+
Das ist ok, denn mit dem `from` und seinem Unterbefehl `toml` können wir dies explizit angeben:
198+
199+
```
200+
> open Cargo.lock | from toml
201+
──────────┬───────────────────
202+
metadata │ [row 107 columns]
203+
package │ [table 130 rows]
204+
──────────┴───────────────────
205+
```
206+
Der `from` Befehl kann für jedes strukturierte Datenformat, welches Nu versteht, verwendet werden,
207+
indem das Format als entsprechender Unterbefehl verwendet wird.
208+
209+
## Öffnen im raw Modus
210+
211+
Auch wenn es hilfreich ist, beim Öffnen einer Datei direkt eine Tabelle zu erhalten,
212+
ist dies nicht immer gewünscht. Um den darunter liegenden Text zu erhalten, kann dem
213+
[`open`](/book/commands/open.md) Befehl das Flag `--raw` mitgegeben werden:
214+
215+
```
216+
> open Cargo.toml --raw
217+
[package] name = "nu"
218+
version = "0.1.3"
219+
authors = ["Yehuda Katz <[email protected]>", "Jonathan Turner <[email protected]>"]
220+
description = "A shell for the GitHub era"
221+
license = "MIT"
222+
```
223+
224+
## URLs abrufen
225+
226+
Zusätzlich zum Laden von Dateien vom Dateisystem, können auch URLs mit dem [`fetch`](/book/commands/fetch.md)
227+
Befehl geladen werden. Dies wird den Inhalt der URL aus dem Netz abrufen und zurückgeben:
228+
229+
```
230+
> fetch https://blog.rust-lang.org/feed.xml
231+
──────┬───────────────────
232+
feed │ {record 2 fields}
233+
──────┴───────────────────
234+
```

0 commit comments

Comments
 (0)