Umgang mit der Shell Übungen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 2: | Zeile 2: | ||
'''Übung:''' | '''Übung:''' | ||
* Finde alle Zeilen, die das Wort "User" enthalten. | * Finde alle Zeilen, die das Wort "User" enthalten. | ||
| − | + | <pre>grep "User" testfile.txt</pre> | |
* Suche Zeilen, die mit "Error" beginnen. | * Suche Zeilen, die mit "Error" beginnen. | ||
| − | + | <pre>grep "^Error" testfile.txt</pre> | |
* Finde alle Zeilen, die '''nicht''' "Success" enthalten. | * Finde alle Zeilen, die '''nicht''' "Success" enthalten. | ||
| − | + | <pre>grep -v "Success" testfile.txt</pre> | |
| + | * Suche nach Zeilen, die Zahlen enthalten. | ||
| + | <pre>grep "[0-9]" testfile.txt</pre> | ||
---- | ---- | ||
| Zeile 13: | Zeile 15: | ||
'''Übung:''' | '''Übung:''' | ||
* Zähle die Anzahl der Zeilen in der Datei. | * Zähle die Anzahl der Zeilen in der Datei. | ||
| − | + | <pre>wc -l testfile.txt</pre> | |
* Zähle die Wörter in der Datei. | * Zähle die Wörter in der Datei. | ||
| − | + | <pre>wc -w testfile.txt</pre> | |
| + | * Zähle die Zeichen in der Datei. | ||
| + | <pre>wc -m testfile.txt</pre> | ||
---- | ---- | ||
| Zeile 22: | Zeile 26: | ||
'''Übung:''' | '''Übung:''' | ||
* Ersetze alle Kleinbuchstaben durch Großbuchstaben. | * Ersetze alle Kleinbuchstaben durch Großbuchstaben. | ||
| − | + | <pre>tr 'a-z' 'A-Z' < testfile.txt</pre> | |
* Entferne alle Ziffern. | * Entferne alle Ziffern. | ||
| − | + | <pre>tr -d '0-9' < testfile.txt</pre> | |
| + | * Ersetze Leerzeichen durch Unterstriche. | ||
| + | <pre>tr ' ' '_' < testfile.txt</pre> | ||
---- | ---- | ||
| Zeile 31: | Zeile 37: | ||
'''Übung:''' | '''Übung:''' | ||
* Extrahiere die erste Spalte aus Zeilen mit "User". | * Extrahiere die erste Spalte aus Zeilen mit "User". | ||
| − | + | <pre>grep "User" testfile.txt | cut -d' ' -f2</pre> | |
* Schneide die ersten 10 Zeichen jeder Zeile ab. | * Schneide die ersten 10 Zeichen jeder Zeile ab. | ||
| − | + | <pre>cut -c1-10 testfile.txt</pre> | |
| + | * Extrahiere die Altersangaben aus den "User"-Zeilen. | ||
| + | <pre>grep "User" testfile.txt | cut -d' ' -f4</pre> | ||
---- | ---- | ||
| Zeile 40: | Zeile 48: | ||
'''Übung:''' | '''Übung:''' | ||
* Ersetze "Alice" durch "Alicia". | * Ersetze "Alice" durch "Alicia". | ||
| − | + | <pre>sed 's/Alice/Alicia/' testfile.txt</pre> | |
* Lösche alle Zeilen, die mit # beginnen. | * Lösche alle Zeilen, die mit # beginnen. | ||
| − | + | <pre>sed '/^#/d' testfile.txt</pre> | |
| + | * Ersetze "Success" durch "✔ DONE" in der Datei. | ||
| + | <pre>sed 's/Success/✔ DONE/' testfile.txt</pre> | ||
---- | ---- | ||
| Zeile 49: | Zeile 59: | ||
'''Übung:''' | '''Übung:''' | ||
* Sortiere die Datei alphabetisch. | * Sortiere die Datei alphabetisch. | ||
| − | + | <pre>sort testfile.txt</pre> | |
* Sortiere rückwärts. | * Sortiere rückwärts. | ||
| − | + | <pre>sort -r testfile.txt</pre> | |
| + | * Sortiere nach der zweiten Spalte (Alter der User). | ||
| + | <pre>grep "User" testfile.txt | sort -k4 -n</pre> | ||
---- | ---- | ||
| Zeile 58: | Zeile 70: | ||
'''Übung:''' | '''Übung:''' | ||
* Zeige alle Dateien im aktuellen Verzeichnis, die mit "t" beginnen. | * Zeige alle Dateien im aktuellen Verzeichnis, die mit "t" beginnen. | ||
| − | + | <pre>ls t*</pre> | |
* Zeige Dateien an, die genau vier Zeichen lang sind. | * Zeige Dateien an, die genau vier Zeichen lang sind. | ||
| − | + | <pre>ls ????</pre> | |
| + | * Finde Dateien, die auf .txt oder .log enden. | ||
| + | <pre>ls *.{txt,log}</pre> | ||
---- | ---- | ||
| Zeile 67: | Zeile 81: | ||
'''Übung:''' | '''Übung:''' | ||
* Finde Telefonnummern (Muster: 123-456-7890). | * Finde Telefonnummern (Muster: 123-456-7890). | ||
| − | + | <pre>grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" testfile.txt</pre> | |
| + | * Finde Zeilen mit einer Kombination aus Groß- und Kleinbuchstaben. | ||
| + | <pre>grep -E "[A-Z][a-z]+" testfile.txt</pre> | ||
| + | * Suche nach Wörtern, die mit "a" oder "b" beginnen. | ||
| + | <pre>grep -E "^[ab]" testfile.txt</pre> | ||
---- | ---- | ||
| Zeile 74: | Zeile 92: | ||
'''Übung:''' | '''Übung:''' | ||
* Kombiniere grep, cut und sort, um die Namen der User alphabetisch zu sortieren. | * Kombiniere grep, cut und sort, um die Namen der User alphabetisch zu sortieren. | ||
| − | + | <pre>grep "User" testfile.txt | cut -d' ' -f2 | sort</pre> | |
| + | * Finde Telefonnummern, entferne Leerzeichen und speichere sie in einer neuen Datei. | ||
| + | <pre>grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" testfile.txt | tr -d ' ' > phones.txt</pre> | ||
| + | * Zähle die Zeilen, die das Wort "Error" enthalten, und speichere die Anzahl in einer Datei. | ||
| + | <pre>grep -c "Error" testfile.txt > error_count.txt</pre> | ||
---- | ---- | ||
Version vom 18. März 2025, 11:44 Uhr
🔍 grep – Suchen in der Datei
Übung:
- Finde alle Zeilen, die das Wort "User" enthalten.
grep "User" testfile.txt
- Suche Zeilen, die mit "Error" beginnen.
grep "^Error" testfile.txt
- Finde alle Zeilen, die nicht "Success" enthalten.
grep -v "Success" testfile.txt
- Suche nach Zeilen, die Zahlen enthalten.
grep "[0-9]" testfile.txt
🔢 wc – Zählen von Zeilen, Wörtern und Zeichen
Übung:
- Zähle die Anzahl der Zeilen in der Datei.
wc -l testfile.txt
- Zähle die Wörter in der Datei.
wc -w testfile.txt
- Zähle die Zeichen in der Datei.
wc -m testfile.txt
🔤 tr – Zeichen umwandeln oder entfernen
Übung:
- Ersetze alle Kleinbuchstaben durch Großbuchstaben.
tr 'a-z' 'A-Z' < testfile.txt
- Entferne alle Ziffern.
tr -d '0-9' < testfile.txt
- Ersetze Leerzeichen durch Unterstriche.
tr ' ' '_' < testfile.txt
✂️ cut – Spalten aus der Datei extrahieren
Übung:
- Extrahiere die erste Spalte aus Zeilen mit "User".
grep "User" testfile.txt | cut -d' ' -f2
- Schneide die ersten 10 Zeichen jeder Zeile ab.
cut -c1-10 testfile.txt
- Extrahiere die Altersangaben aus den "User"-Zeilen.
grep "User" testfile.txt | cut -d' ' -f4
📝 sed – Suchen und Ersetzen
Übung:
- Ersetze "Alice" durch "Alicia".
sed 's/Alice/Alicia/' testfile.txt
- Lösche alle Zeilen, die mit # beginnen.
sed '/^#/d' testfile.txt
- Ersetze "Success" durch "✔ DONE" in der Datei.
sed 's/Success/✔ DONE/' testfile.txt
🔀 sort – Sortieren der Datei
Übung:
- Sortiere die Datei alphabetisch.
sort testfile.txt
- Sortiere rückwärts.
sort -r testfile.txt
- Sortiere nach der zweiten Spalte (Alter der User).
grep "User" testfile.txt | sort -k4 -n
🔹 Shell-Sonderzeichen (*, ?, [ ])
Übung:
- Zeige alle Dateien im aktuellen Verzeichnis, die mit "t" beginnen.
ls t*
- Zeige Dateien an, die genau vier Zeichen lang sind.
ls ????
- Finde Dateien, die auf .txt oder .log enden.
ls *.{txt,log}
🔎 Reguläre Ausdrücke (grep -E)
Übung:
- Finde Telefonnummern (Muster: 123-456-7890).
grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" testfile.txt
- Finde Zeilen mit einer Kombination aus Groß- und Kleinbuchstaben.
grep -E "[A-Z][a-z]+" testfile.txt
- Suche nach Wörtern, die mit "a" oder "b" beginnen.
grep -E "^[ab]" testfile.txt
🔄 Mehrere Befehle nacheinander ausführen
Übung:
- Kombiniere grep, cut und sort, um die Namen der User alphabetisch zu sortieren.
grep "User" testfile.txt | cut -d' ' -f2 | sort
- Finde Telefonnummern, entferne Leerzeichen und speichere sie in einer neuen Datei.
grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" testfile.txt | tr -d ' ' > phones.txt
- Zähle die Zeilen, die das Wort "Error" enthalten, und speichere die Anzahl in einer Datei.
grep -c "Error" testfile.txt > error_count.txt
📄 Testdatei (testfile.txt)
Erstelle eine Datei `testfile.txt` mit folgendem Inhalt:
# Dies ist eine Testdatei für Linux-Befehle User: Alice Age: 30 Location: Berlin User: Bob Age: 25 Location: Hamburg User: Charlie Age: 35 Location: Munich Error: File not found Warning: Low disk space Success: Operation completed 123-456-7890 +49 176 1234567 abc_def_ghi Hello, world! The quick brown fox jumps over the lazy dog. linux Linux LiNuX apple banana apple cherry zebra apple mango banana