• Keine Ergebnisse gefunden

Vorlesung Linux-Praktikum 2. Ein-/Ausgabeumleitung Dirk Frettl¨oh

N/A
N/A
Protected

Academic year: 2021

Aktie "Vorlesung Linux-Praktikum 2. Ein-/Ausgabeumleitung Dirk Frettl¨oh"

Copied!
31
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Vorlesung Linux-Praktikum

2. Ein-/Ausgabeumleitung

Dirk Frettl¨ oh

Technische Fakult¨at Universit¨at Bielefeld

(2)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Willkommen zur dritten Vorlesung

Was gab es beim letzten Mal?

I

Dateisystem

I

Erste Kommandozeilenbefehle:

pwd, ls, cd, cp, mkdir, mv, rm, rmdir

I

Dateitypen: Texteditoren

2 / 31

(3)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Was machen wir heute?

Ein-/Ausgabeumleitung Grundidee

Anwendungen

Ein-/Ausgabeweiterleitung Grundidee

Anwendungen Weitere Kommandos sed

Ausblick

Allgemeiner Plan

dieser Vorlesung:

(4)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ein-/Ausgabeumleitung

Beispiel: Interaktive Nutzung eines Programms

bc

(basic calculator)

I

ein Kommandozeilen - Taschenrechner

$ bc 4 + 7 11 9 * 3 27 quit

4 / 31

(5)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Grundidee

Eingabe

> Programm Ausgabe

Ein- und Ausgabe sind hier

Text

Der Standard ist:

I

stdin: (Standard Input) Tastatur

I

stdout: (Standard Output) Monitor

I

stderr: (Standard Error, Fehlermeldung) Monitor

(6)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ein-/Ausgabeumleitung

Beispiel: Ausgabeumleitung

Der Befehl

echo

gibt einfach seine Argumente an die Ausgabe.

$ echo Hallo Welt Hallo Welt

Also:

$ echo Hallo Welt > ausgabe.txt

$ more Hallo Welt Hallo Welt

Falls in ausgabe.txt schon etwas steht:

> l¨ oscht alten Inhalt

>> h¨ angt an alten Inhalt an

6 / 31

(7)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Beispiel: Eingabeumleitung

4+7 9*3 quit

bc eingabe.txt 11

27

<

Zeichen für Eingabeumleitung!

$

(8)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ein-/Ausgabeumleitung

Beispiel: Ausgabeumleitung

11 27

4+7 9*3

>

Zeichen für Ausgabeumleitung!

bc ausgabe.txt

quit

$

8 / 31

(9)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Beispiel: beides gleichzeitig

bc eingabe.txt ausgabe.txt 11 27 4+7

9*3 quit

< >

$

(10)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ein-/Ausgabeumleitung

Textdateien zeilenweise sortieren

sort

$ sort planeten.txt

I

sortiert alphabetisch nach der ersten Spalte

$ sort

-k 2

planeten.txt

I

sortiert alphabetisch nach der

zweiten Spalte

$ sort -k 2

-n

planeten.txt

I

sortiert

numerisch

nach der zweiten Spalte

10 / 31

(11)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Verzeichnislisting nach Gr¨oße sortieren

$ ls -l > zwischen.txt

$ sort -k 5 -n zwischen.txt > sort.txt

$ more sort.txt

$ rm zwischen.txt sort.txt

I

das Hantieren mit tempor¨ aren Dateien ist l¨ astig!

(12)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ein-/Ausgabeweiterleitung

12 / 31

(13)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Grundidee: Verketten von Programmen

Ausgabe Eingabe

Programm

Programm ...

Programm

1

2

n

(14)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ein-/Ausgabeweiterleitung

Anwendung auf das Sortierproblem

Das “Pipe”-Symbol

|

verbindet die Programme:

$ ls -l

|

sort -k 5 -n

|

more

Ausgabe des links von

|

stehenden Programms

wird Eingabe des rechts von

|

stehenden Programms

I

deutlich effizienter als Zwischenspeichern!

14 / 31

(15)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Textdateien zusammenf¨ugen

cat

(concatenate files)

$ cat eins.txt zwei.txt drei.txt

I

gibt den Inhalt der Dateien nacheinander aus.

$ cat eins.txt zwei.txt drei.txt > sammlung.txt

I

Ergebnis in neuer Datei speichern.

$ cat eins.txt

I

N¨ utzlicher Spezialfall: Eine kurze Datei anschauen

(16)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Kommandos zum Bearbeiten von Textdateien

Textdateien zeilenweise vergleichen

diff

(show difference between files)

$ diff links.txt rechts.txt Entziffern der Ausgabe von diff:

ncm: Die nachfolgenden Zeilen wurden ver¨ andert.

<:

urspr¨ unglicher Text war in Zeile

n

in links.txt

>:

ver¨ anderter Text ist in Zeile

m

in rechts.txt

8c9

<

ac turpis egestas. In imperdiet porta elit.

− − −

>

ac turpis egestas. In imperdiet magna elit.

16 / 31

(17)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Textdateien zeilenweise vergleichen (Forts.)

nam: in der Datei

rechts.txthinzugef¨ugte

Zeilen 3a4

> nisi vulputate euismod sollicitudin, dolor quis ndm: in der Datei

rechts.txtgel¨oschte

Zeilen

19d19

< fringilla facilisis nisi. Proin id lorem a ipsum

(18)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Kommandos zum Bearbeiten von Textdateien

Anfang einer Datei ausgeben

head

(show head of file)

$ head -3 liste.txt

I

zeigt die ersten 3 Zeilen einer Datei.

18 / 31

(19)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ende einer Datei ausgeben

tail

(show tail of file)

$ tail -4 liste.txt

I

zeigt die letzten 4 Zeilen einer Datei.

$ tail +7 liste.txt

I

zeigt alle Zeilen ab der 7ten Zeile

(bzw. unterdr¨ uckt die Zeilen 1 bis 6)

(20)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Kommandos zum Bearbeiten von Textdateien

Zusammenfassendes komplexes Beispiel

Aufgabe: Planeten-Tabelle mit ¨ Uberschrift sortieren

$ sort planeten2.txt

I

klappt nicht wegen der ¨ Uberschrift Ansatz: ¨ Uberschrift mit tail abschneiden

$ tail -n +3 planeten2.txt | sort

I

besser, aber ¨ Uberschrift fehlt jetzt

20 / 31

(21)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Zusammenfassendes komplexes Beispiel

Uberschrift erh¨ ¨ alt man mit head:

$ head -2 planeten2.txt Alles zusammenf¨ ugen:

$ head -2 planeten2.txt > teil1.txt

$ tail -n +3 planeten2.txt | sort > teil2.txt

$ cat teil1.txt teil2.txt > sortiert.txt

$ rm teil1.txt teil2.txt

(22)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Kommandos zum Bearbeiten von Textdateien

Zusammenfassendes komplexes Beispiel

Es geht auch ohne Zwischendateien:

$ head -2 planeten2.txt; tail -n +3 planeten2.txt | sort

Semikolon trennt Aufrufe

I

man kann mehr als ein Programm pro Zeile ausf¨ uhren

I

Ausf¨ uhrung von links nach rechts

I

Ausgaben werden aneinandergeh¨ angt

22 / 31

(23)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ausgabeumleitung des Ergebnisses

$ head -2 planeten2.txt; tail -n +3 planeten2.txt | sort

> ergebnis.txt

I

liefert nicht das Gew¨ unschte:

nur die Ausgabe von tail wird umgeleitet L¨ osung:

$ (head -2 planeten2.txt; tail -n +3 planeten2.txt | sort)

> ergebnis.txt

I

gesamten Ausdruck in runden Klammern ausf¨ uhren,

dessen Ausgabe umgeleitet werden soll

(24)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Kommandos zum Bearbeiten von Textdateien

Texte in Dateien suchen

grep

(global regular expression print)

$ grep datei *.txt

drei.txt:3 dritte Textdatei eins.txt:1 erste Textdatei ...

Durchsucht alle Dateien mit der Endung *.txt, ob sie den Text “datei” enthalten.

Falls Groß-/Kleinschreibung (Datei/datei) egal sein soll:

grep -i datei *.txt

24 / 31

(25)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ausgaben mit grep filtern

Filtern von Programmausgaben mit grep:

ls -la | grep 2016

I

zeigt alle Dateien mit Datum 2016 ls -la | grep :

I

zeigt alle Dateien j¨ unger als ein Jahr

(wegen des speziellen Formats von ls -l, ansehen!)

(26)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Suchen und Ersetzen

Bielefled;21243;mittel;Station 44;1.Januar 2020 Herford;5741;hoch;Mast 38;1.Januar 2020

G¨ utersloh;28759;mittel;Mast 92;1.Januar 2020 Bielefled;12535;hoch;Mast 81;2.Januar 2020 Herford;20885;niedrig;Mast 3;2.Januar 2020 ...

I

wir brauchen “Suchen und Ersetzen” f¨ ur die Kommandozeile

26 / 31

(27)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

innerhalb von Textdateien

sed: script editor - “Suchen und Ersetzen” per Kommandozeile

Ersetzen des ersten Vorkommens:

echo "alt alt alt" | sed "

$ neu alt alt

/

$ s alt/neu/"

Ersetzen aller Vorkommen:

g"

neu neu neu

$ echo "alt alt alt" | sed "s/alt/neu/

$

(28)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Suchen und Ersetzen

Fehler in der Tabelle korrigieren

$ sed "s/Bielefled/Bielefeld/g" < messung-typo.csv Bielefeld;21243;mittel;Station 44;1.Januar 2020 Herford;5741;hoch;Mast 38;1.Januar 2020

G¨ utersloh;28759;mittel;Mast 92;1.Januar 2020 Bielefeld;12535;hoch;Mast 81;2.Januar 2020 ...

28 / 31

(29)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Uberblick

Neue Befehle heute

bc einfacher Taschenrechner

>, >>, < Aus-/Eingabe umleiten

sort Sortieren

; mehrere Befehle in einer Zeile trennen

| “Pipe”, Ausgabe des letzten Befehls als Eingabe des n¨ achsten Befehls nehmen

cat Aneinanderh¨ angen Strg-c Programm abbrechen echo Argument ausgeben

diff Unterschied zwischen zwei Dateien anzeigen

head, tail Anfang/Ende einer Datei anzeigen

(30)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Ausblick

N¨achste Woche machen wir...

I

Dateiverwaltung

I

Shell konfigurieren

I

Aliase

I

einfache Shellskripte

30 / 31

(31)

Unix- Praktikum Dirk Frettl¨oh

Ein-/Ausgabe- umleitung

Grundidee Anwendungen

Ein-/Ausgabe- weiterleitung

Grundidee Anwendungen Weitere Kommandos sed

Ausblick

Vielen Dank f¨urs Zusehen Bis n¨achste Woche!

Referenzen

ÄHNLICHE DOKUMENTE

Mit welchen Wildcards muß der Befehl ls aufgerufen werden, damit nur die folgenden Dateien ausgegeben werden.. messung10_b.txt

Sie haben auf Ihrem Linux-Rechner zu Hause ein Verzeichnis Praesentation mit verschie- denen Dokumenten und Bildern erstellt. Dieses Verzeichnis m¨ochten Sie auf Ihr Benutzerkonto

a) Schreiben Sie ein Shellskript mit dem Namen genarch.sh, das drei Dateien mit den Namen eins.txt, zwei.txt und drei.txt erzeugt. Die Dateien sollen die Texte erste Datei,

Eine Datei .git-ignore so anlegen, dass neue-datei.sh ab jetzt von git ignoriert wird (also z.B. von git add * nicht mehr dem repository hinzugef¨ugt).. Die Datei .git-ignore

In der Project Overview kann auch direkt eine Datei im Remote Repository erstellt und commitet werden.. Erstellen und committen Sie eine Textdatei names fib.hs und aktuali- sieren

• Falls sich im aktuellen Verzeichnis bereits eine Datei oder ein Unterverzeichnis mit die- sem Namen befinden, wird eine entsprechende Meldung ausgegeben. • Anderenfalls wird

• Schreiben Sie auch hierf¨ur ein Skript, dass f¨ur eine gegebene pgm-Datei (z.B. bild.pgm) die Farben invertiert: Grauwert n wird zu Grauwert 255-n. Das invertierte Bild wird in ei-

F¨ugen Sie diese Datei am Ende des Doku- ments paper.tex als gleitende Abbildung mit Hilfe einer Figure-Umgebung ein (siehe das Beispiel auf Folie 38-40 von Vorlesung 12)... ¨