Pipes und Filter¶
ls zeigt alle Dateien und Verzeichnisse an dieser Stelle an.
[1]:
!ls
create-delete.ipynb grep-find.ipynb.license
create-delete.ipynb.license index.rst
dvc.list pipes-filters.ipynb
file-system.ipynb pipes-filters.ipynb.license
file-system.ipynb.license shell-variables.ipynb
grep-find.ipynb shell-variables.ipynb.license
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
21 52 531 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
529 index.rst
Wir können die Dateien auch nach der Anzahl der Zeichen sortieren lassen:
[6]:
!sort -n length.txt
529 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
21 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
Unix-Shell