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