Pipes und Filter#
ls
zeigt alle Dateien und Verzeichnisse an dieser Stelle an.
[1]:
!ls
create-delete.ipynb grep-find.ipynb regex.ipynb
dvc.list index.rst shell-variables.ipynb
file-system.ipynb pipes-filters.ipynb
Mit *.rst
schränken wir die Ergebnisse auf alle Dateien mit der Endung .rst
ein:
[2]:
!ls *.rst
index.rst
Wir können auch die Anzahl der Zeilen, Wörter und Zeichen in diesen Dokumenten ausgeben:
[3]:
!wc *.rst
18 44 498 index.rst
Nun schreiben wir die Anzahl der Zeichen in die Datei length.txt
und geben den Text anschließend mit cat
aus:
[4]:
!wc -m *.rst > length.txt
[5]:
!cat length.txt
496 index.rst
Wir können die Dateien auch nach der Anzahl der Zeichen sortieren lassen:
[6]:
!sort -n length.txt
496 index.rst
[7]:
!sort -n length.txt > sorted-length.txt
Wir können die vorhandene Datei auch überschreiben:
[8]:
!sort -n length.txt > length.txt
Wenn wir nur die Gesamtzahl der Zeichen wissen wollen, also nur die letzte Zeile ausgeben wollen, können wir dies mit tail
tun:
[9]:
!tail -n 1 length.txt
Mit >
wird eine Datei überschrieben, während >>
zum Anhängen an eine Datei verwendet wird.
[10]:
!echo Anzahl der Zeichen >> length.txt
[11]:
!cat length.txt
Anzahl der Zeichen
Pipe |
#
Ihr könnt Befehle mit einer Pipe (|
) verbinden. Im folgenden Einzeiler wollen wir die Anzahl der Zeichen für die kürzeste Datei anzeigen:
[12]:
!wc -l *.rst | sort -n | head
18 index.rst
Wenn wir uns die ersten Zeilen des Haupttextes (ohne die ersten drei Zeilen für den Titel) anzeigen lassen wollen:
[13]:
!cat index.rst | head -n 5 | tail -n 2
Jeder Befehl auf der Kommandozeile funktioniert auch in Jupyter-Notebooks, wenn
``!`` vorangestellt wird. Die Ergebnisse können dann mit dem Jupyter-Namensraum