Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Ähnliche Dokumente
Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Bash-Scripting Linux-Kurs der Unix-AG

Vorlesung Unix-Praktikum

Unix/Linux Grundlagen für Einsteiger

Shell-Programmierung

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Übung 4: Schreiben eines Shell-Skripts

Arbeiten in der Unix-Kommandozeile

Linux-Einführung Übung

Arbeiten in der Unix-Kommandozeile

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL. Max Rosin - ANKÜNDIGUNGEN

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

Übung: Entwickeln eines Shell-Skripts

Crashkurs Kommandozeile

/ Vortrag Unix-AG

Okt 10, 16 17:29 UNIX/Linux Lösung

Unix-Shells. mehrere Befehle in einer Zeile. bash: Grundlagen. Ein- und Ausgaben umlenken. Befehle: Dateien und Verzeichnisse (1)

Einführung Unix Shell

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Proseminar UNIX Tools. Ferdinand Beyer

1.103 Grundlagen der Dateibearbeitung mit vi

Lernziele Dateiverwaltung Bearbeiten von Textdateien Sichere Anmeldung per SSH-Schlüssel. Linux für Anfänger

Einführung in die Kommandozeile

Arzu Sanli Ibrahim Canakci

Linux I II III Res/Pro WN/TT Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

Arbeiten in der Unix-Kommandozeile. PeP et al. Toolbox Workshop

Computer & GNU/Linux Einführung Teil 4

Das CIP der Mathematik

Vorsemesterkurs Informatik

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Vorlesung Unix-Praktikum

Linux und Shell-Programmierung Teil 5

Eine kurze Einführung in Vim

Grundlagen der Programmierung

/ Software Freedom Day

Kommandozeilen effizient nutzen und verstehen

Technische Praxis der Computersysteme I 3. Vorlesung

Zugang zu LISP. Franz Inc. Allegro Lisp Version 7.0 ist im Linux Pool installiert.

Shell Programmierung. Was ist die Shell überhaupt?

105.1 Shell, Scripting

(Unix) Shell Programmierung

Vorlesung Unix-Praktikum

Der Standard-Editor vi

Computergrundlagen Einführung in UNIX 1

Alles, was man auf der Kommandozeile eingeben kann, kann man auch in einem Skript verwenden. Umgekehrt gilt das gleiche.

Linux Prinzipien und Programmierung

Benutzer- und Rechtevergabe

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Effizientes Arbeiten mit dem Emacs. Suchen und Ersetzen.

Aufgabensammlung IT Shellprogrammierung Teil I

Effizientes Arbeiten mit dem Emacs. Suchen und Ersetzen.

Linux I II III Res WN/TT NLTK XML Weka E Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

6 Bearbeitung von Texten

5 Bearbeitung von Texten

Vorlesung Unix-Praktikum

Linux und Shell-Programmierung Teil 6

1.2 Ausführung von Python-Skripten

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Operatoren Schleifen Case Funktionen Kommandos Signale Stringmanipulation

Desktop ade: Me and my shell

Objektorientiertes Programmieren mit Suse Linux

Ein- und Ausgabeumlenkung

Der Novell Open Enterprise Server

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

Shell-Programmierung. von Rolf Schmidt für. LUG Frankfurt

Linux - a bit advanced

1 Hinweise. 2 UNIX Basiskommandos. 3 Der Editor Emacs

Versuchsziele. Dateien: a1: abcd Abcd abccd abcccd cbad cab werr werrr

Überblick zum Thema CDO und Shell-Skripting

Einführung Wissenschaftliches Rechnen. René Lamour. Sommersemester 2015

Übersicht Shell-Scripten

ShellScripting : Shell Scripte

Formale Sprachen und Automaten

Technische Praxis der Computersysteme. Technische Praxis der Computersysteme

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A

Arithmetik in der tcsh

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A

3 Regular expressions

UNIX Die wichtigsten Befehle

Technische Praxis der Computersysteme

Benutzung der Manpage, Shell Teil 3

Computergrundlagen Einführung in UNIX 1

Betriebssysteme Ein Überblick

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Vorlesung Unix-Praktikum

Stream EDitor SED und Reguläre Ausdrücke

Arbeiten mit der Shell Teil 1

Einführung in die C-Programmierung

Arbeiten mit Linux und an der Kommandozeile

Transkript:

Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting

POSIX POSIX POSIX ist ein UNIX-Standard, der bestimmte grundlegende Funktionen und Eigenschaften von UNIX-Systemen definiert. Dazu gehören auch reguläre Ausdrücke, die in einer Vielzahl von Kommandozeilentools verwendet werden können bzw. müssen. /regulärer Ausdruck/ Reguläre Ausdrücke Reguläre Ausdrücke beschreiben eine Menge von Zeichenfolgen und werden benutzt um m festzustellen, ob eine Zeichenkette Teil dieser Menge ist. Der Ausdruck matcht dann auf die Zeichenkette.

Aufbau I Abgesehen von Meta Characters matcht jedes Zeichen aus dem regulären Ausdruck genau auf sich selbst. Example /abcd/ matcht auf die Zeichenfolge abcd Meta Characters haben eine besondere Bedeutung und werden benutzt, um Gruppen zu bilden, Alternativen darzustellen oder auf mehr als ein Zeichen zu matchen.

Aufbau II Meta Characters. Ein beliebiges Zeichen [ ] Matcht alle einzelnen Zeichen innerhalb der Klammern, des Bereichs oder der Zeichenklasse [ˆ ] Matcht auf alle Zeichen, die nicht innerhalb der Klammern stehen ˆ Anfang der Zeichenkette $ Ende der Zeichenkette * Matcht das vorherige Zeichen 0 oder mehr Male + Matcht das vorherige Zeichen 1 oder mehr Male? Matcht das vorherige Zeichen 0 oder 1 Mal

Aufbau III Beispiele /Maus/ matcht auf Maus /.aus/ matcht auf Maus, Haus, maus, 1aus,... /.*aus/ matcht auf Maus, heraus, 123aus, aus,... /[MH]aus/ matcht auf Maus, Haus, Haus1,... /^[MH]aus$/ matcht auf Maus und Haus /^[^MH]aus$/ matcht auf Laus, Daus, raus,... /^A(p ff)e$/ matcht auf Affe und Ape

Benutzung von regulären Ausdrücken Tools, in denen reguläre Ausdrücke benutzt werden können grep / egrep sed emacs perl...

Charakterklassen Zur einfacheren Handhabung gibt es sogennante Charakterklassen. Jede Charakterklasse matcht auf eine Menge von Zeichen. Übliche Klassen [:alnum:] [a-za-z0-9] [:alpha:] [a-za-z] [:digit:] Digits [:lower:] [a-z] [:punct:] Punctuation and Symbols [:space:] [ \t\r\n\v\f] [:word:] [a-za-z0-9 ]

Backreferences In Klammern ( ) gesetzte Zeichen sind als Backreferences verfügbar. Damit kann auf bereits gefundene Teile verwiesen werden Beispiele /^(.)\1/ Matcht Zeichenketten, die mit zwei beliebigen, aber gleichen Zeichen anfangen: aal, iih,...

Ersetzung I Reguläre Ausdrücke können auch benutzt werden um Ersetzungsregeln für sed zu definieren. Beispiel $ sed s/groß/klein/g file.txt Ersetzt jede Zeichenfolge groß durch die Zeichenfolge klein Aufbau s/<a>/<b>/ Ersetzungsausdrücke (in sed und perl): <a> wird durch <b> ersetzt g Modifikator: Globales Matching i Modifikator: Case insensitive s Modifikator:. matcht auch auf Zeilenumbrüche

Ersetzung II Beispiele $ sed s/[[:space:]]/\n/g file.txt Ersetzt jedes space-zeichen durch einen Zeilenumbruch. Jedes Wort steht dann auf einer eigenen Zeile $ sed s/([[:space:]])[[:punct:]]/\1/g Ersetzt Space gefolgt von Punctuation-Zeichen durch Space. Entfernt z.b. öffnende Anführungszeichen. $ sed s/([[:lower:]])([[:upper:]])/\1 \2/g Ersetzt CamelCase-Ausdrücke durch Camel Case

Übung 3

(Einige) Lösungen 3c $ egrep -ic "(gott götter)" zara.txt 3f $ egrep -oi "([[:space:]] [[:punct:]])[[:alnum:]-]* (mensch gott götter)[[:alnum:]-]* ([[:punct:][:space:]])" zara.txt Beispiel (Verteilung Gott ) 92 Gott 24 Gottes 18 Götter 8 Gotte

Editoren Text-Editoren werden benutzt um Textdateien zu schreiben bzw. zu ändern. Textdateien bezeichnet dabei nur das Format nicht den Inhalt. Praktisch alle Programmiersprachen benutzen Text-Dateien um den Quellcode zu speichern. Unter Unix/Linux gibt es zwei wichtige Editoren, die man beide kennen sollte: Emacs und vi. Welchen man dann regelmäßig benutzt ist weitestgehend Geschmackssache. Diese Folien z.b. wurden in Emacs getippt. Wir werden ganz kurz über vi reden und dann etwas länger über Emacs.

vi Befehlsmodus: Tastenkombinationen ermöglichen einfache Befehle wie Suchen, Zeile löschen etc. Einfügemodus: Eigentliche Eingabe von Text Kommandozeilenmodus: Komplexe Befehle vi beenden: :wq Tutorial: http://www.eng.hawaii.edu/tutor/vi.html

Emacs I Emacs kennt keine Modi, sondern eine Unmenge von Tastenkombinationen Dabei gibt es zwei Sondertasten: Command und Meta (C bzw. M). Command ist meistens Ctrl und Meta Alt oder Escape (das variiert von Betriebssystem zu Betriebssystem) Emacs gibt es auch mit einer GUI, wo man sich durch Menüs klicken kann

Emacs II Wichtige Tastenkürzel C-x C-c Beenden C-x C-s Speichern C-x C-w Speichern unter C-x C-f Datei öffnen M-x Befehlszeile C- Rückgängig C-s Vorwärts suchen C-r Rückwärts suchen C-a Anfang der Zeile C-e Ende der Zeile C-k Ausschneiden bis Zeilenende C-y Einfügen

Emacs III Nützliche Kommandos für die Befehlszeile goto-line Springe zu Zeile shell Öffnet ein Terminal X-mode Wechselt in Modus X Links http://www.emacswiki.org http://www.gnu.org/software/emacs/manual

demo

Variablen In der Shell können Variablen verwendet werden. Beispiel $ TEST=filename $ echo $TEST filename $ echo $TEST.txt filename.txt $ echo../$test.txt../filename.txt $ echo $TEST2 $ echo ${TEST}2 filename2

Quoting I Beispiele $ TEST="A B" $ echo "$TEST" A B $ echo '$TEST' $TEST $ TEST="A B" $ echo $TEST A B $ echo "$TEST" A B

Quoting II Beispiele (``) $ TEST=`ls -la` $ echo $TEST...output of ls -la...

Spezielle Variablen $HOME Der Pfad zum Homeverzeichnis $PWD Working Directory $OLDPWD Previous Working Directory $ Letztes Argument des letzten Kommandos

Variablen in Subprozessen Standardvariablen sind in Subprozessen nicht belegt. Beispiel $ VAR=hallo $ bash -c echo VAR=$VAR VAR= Umgebungsvariablen, die mit export deklariert werden, sind in Subprozessen verfügbar. Beispiel $ export VAR=hallo $ bash -c echo VAR=$VAR VAR=hallo

Scripting I Bisher haben wir Shell-Kommandos direkt eingegeben, auf das Ergebnis gewartet und ein neues eingegeben. Shell-Kommandos können auch in Programmen verwendet werden, sog. Shell-Scripts. $ less /home/public/filter.sh #!/bin/bash for word in "$@" do if! grep -q "^${word}$" stop.txt then echo $word fi done

Scripting II Variablen in Skripten $0, $1, $2,... Parameter von der Kommandozeile $# Anzahl der Parameter $@ Liste aller Parameter Kontrollstrukturen Vier wichtige Kontrollstrukturen: for, while, until, if Beispiele. Das war nur eine sehr kurze Einführung. Sehr viel lesen können (und sollen) Sie z. B. hier: http://tldp.org/ldp/abs/html/index.html.

demo

Übung 4