Perl-Praxis. Dateien und Daten. Jörn Clausen, Jan Krüger Jens Reeder, Alex Sczyrba. AG Praktische Informatik Technische Fakultät Universität Bielefeld

Ähnliche Dokumente
Perl-Praxis. Dateien und Daten. Jörn Clausen Jens Reeder, Jan Krüger

Perl-Praxis. Dateien und Daten. Jörn Clausen Daniel Hagemeier, Jan Krüger

Perl-Praxis. Dateien und Daten. Jörn Clausen, Jan Krüger Jens Reeder, Alex Sczyrba. AG Praktische Informatik Technische Fakultät Universität Bielefeld

Arbeiten mit der Shell Teil 2

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Perl-Praxis. Subroutinen. Jörn Clausen, Jan Krüger Jens Reeder, Alex Sczyrba. AG Praktische Informatik Technische Fakultät Universität Bielefeld

Vorlesung Unix-Praktikum

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

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

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

EiP Übung Sichern Sie im Verzeichnis aufg3 den Inhalt des Artikels im Wochenmagazin "der Freitag" über google in der Datei artikel.

Grundlagen der Programmierung

Computer & GNU/Linux Einführung Teil 4

Übersicht Shell-Scripten

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

Bash-Skripting Linux-Kurs der Unix-AG

Einführung in die Kommandozeile

Bash-Skripting Linux-Kurs der Unix-AG

Vorlesung Unix-Praktikum

LINUX Gesamtmitschrift

Basiskonzepte des Rechnerbetriebs

Perlkurs Dateiverarbeitung. Dr. Marc Zapatka Deutsches Krebsforschungszentrum Molekulare Genetik Gruppenleiter Bioinformatik

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

Einführung in die Computerlinguistik Einführung in Perl (1)

9 Block 9: Von der Idee zum Programm: Restrict.pl

Informatik I - Einstiegskurs

Unix/Linux Grundlagen für Einsteiger

MASCHINELLE SPRACHVERARBEITUNG Gertrud Faaß Basierend auf Folien von Dr. H Zinsmeister. Einführung in PERL

Übung 4: Schreiben eines Shell-Skripts

MySQL Queries on "Nmap Results"

Pipes. 1 Prozessverwaltung. 2 Pipes. 3 Rechteverwaltung. 4 Secure Shell Fernsteuern anderer Rechner. 5 Kommandos, Kommandos, Kommandos,...

UNIX Grundlagen. Sascha Frank SS August 2006 UNIX I. Sascha Frank. Einführung. Basic Befehle. Quellen

Perl-Praxis. Kontrollstrukturen. Jörn Clausen Daniel Hagemeier, Jan Krüger

Okt 02, 17 12:28 UNIX/Linux Lösung

Linux-Einführung Übung

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

Einführung in die Angewandte Bioinformatik

SelfLinux Dateien unter Linux

Linux Prinzipien und Programmierung

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

L A TEX, Linux, Python

Öffnen einer Datei. Programm mit einer Fehlermeldung beendet. open( IN, "datei.txt" ) or die( "open-fail: $!" );

UNIX Die wichtigsten Befehle

Betriebssysteme Ein Überblick

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Komplexe Datenstrukturen

Netzwerk-Programmierung. Prozesse. Alexander Sczyrba Michael Beckstette.

Arithmetik in der tcsh


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

10 Block 10: Verwendung von Modulen in Perl

Übung: Entwickeln eines Shell-Skripts

EiP Übung

SelfLinux Dateien unter Linux

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Einführung in Perl 6. Referent : Gerd Pokorra Am Eicher Hang Freudenberg. (dienstlich): /

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

I.1 Die Parrot Assemblersprache

Einführung in die Angewandte Bioinformatik: Datenanalyse mit R

Einführung Unix Shell

Perlkurs WS 14/15 - Einführung

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Einführung in die Programmierung für Computerlinguisten

Introduction to Linux/bash Carl Herrmann Cancer Regulatory Genomics B080 - DKFZ

UNIX/Linux Lösung. Okt 12, 13 13:57 Seite 1/6. Pipe (was ist das?, wo kommt es vor?, Beispiel?): Datenverbindung zwischen 2 Prozessen(Kommandos)

Arzu Sanli Ibrahim Canakci

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

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Prozesse. Netzwerk - Programmierung. Alexander Sczyrba Madis Rumming

Einführung in Perl. O'REILLY Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo. Randal L. Schwartz, Tom Phoenix & brian dfoy

Ein- und Ausgabeumlenkung

Shell-Scripting Linux-Kurs der Unix-AG

EiP Übung

Shell-Scripting Linux-Kurs der Unix-AG

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

Kommandozeileneingabe. Einführung in Perl Kommandozeileneingabe etc. Kommandozeileneingabe Optionen. Kommandozeileneingabe Bsp (1)

Eine Mini-Shell als Literate Program

Programmentwicklung ohne BlueJ

Technische Praxis der Computersysteme I 3. Vorlesung

EiP Übung

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

Arbeiten in der Unix-Kommandozeile

Perl-Praxis. Jörn Clausen

Dateizugriff unter C

Kommandos im Unix-Grundkurs Digicomp-UXE. Inhalt

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

Einführung in die Kommandozeile

Patrick Ditchen 4. Auflage. Shell-Skript Programmierung. Inklusive CD-ROM

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

Einführung in GNUPLOT

Perl-Praxis CGI-Skripte 0-0/22

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2013/14, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

Linux Geschichte. Linux Bootvorgang. Linux. UNIX-Stammbaum. Runlevel. Seite 1 von 18

Arbeiten in der Unix-Kommandozeile

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

Da einige Befehle gerne in Vergessenheit geraten werden hier einige essentielle und nützliche Befehle aufgelistet.

Allgemeine Informatik 1 im WS 2006/07 Übungsblatt 1 (Teil 2)

Shell-Scripting Linux-Kurs der Unix-AG

Transkript:

Perl-Praxis Dateien und Daten Jörn Clausen, Jan Krüger Jens Reeder, Alex Sczyrba AG Praktische Informatik Technische Fakultät Universität Bielefeld {asczyrba,jkrueger}@techfak.uni-bielefeld.de

Übersicht Informationen über Dateien Daten aus Dateien lesen Daten in Dateien schreiben mit pipes lesen und schreiben Perl-Praxis Dateien und Daten 2/20

Datenverarbeitung mit Perl nachträgliche Auflösung des Akronyms Perl : Pratical Extraction and Report Language... oder auch: Pathologically Eclectic Rubbish Lister Verarbeitung von Dateien, vor allem Textdateien Einlesen und Parsen Integration mit Unix-Tools (cat, more, head, tail, wc,... ) Perl-Praxis Dateien und Daten 3/20

Dateitestoperatoren Eigenschaften/Existenz von Dateien überprüfen von Shells übernommen if (-f "/etc/passwd") {... } if (-r "/etc/shadow") {... } if (-w "/etc/shadow") {... } if (-x "/bin/ls") {... } if (-d "/var/tmp") {... } # is a file # ooops, passwords readable? # OOOPS, even writeable???? # is executable # directory exists weitere Tests Perl-Praxis Dateien und Daten 4/20

Aufgaben Überprüfe die Eigenschaften der folgenden Dateien: @files = ( "/etc/motd", "/tmp", "/kernel", "/dev/null", "/" ); Perl-Praxis Dateien und Daten 5/20

mit Dateien arbeiten Abstraktion: filehandle Datei lesen: open(data, data.txt ); Rückgabewert zeigt Fehler an typisches Idiom mit short-circuit operator: open(data, data.txt ) die "can t open file\n"; Fehlercode/Fehlermeldung in Variable $!: open(data, data.txt ) die "can t open file: $!\n"; Datei schließen: close(data); Perl-Praxis Dateien und Daten 6/20

Zeilenweise aus Datei lesen: Dateien lesen open(data, data.txt ) die "can t open file: $!\n"; while ($line = <DATA>) { chomp($line); print "got line: $line\n"; } close(data); chomp schneidet LF/CR-LF ab angle operator: <...> liefert am Dateiende undef Datei komplett lesen: @lines = <DATA>; foreach $line (@lines) {... }; Perl-Praxis Dateien und Daten 7/20

Aufgaben Schreibe ein Programm, das eine FASTA-Datei einliest und die Länge der Sequenz bestimmt. Die FASTA-Datei soll dabei nur eine Sequenz enthalten! Schreibe ein Programm, das eine FASTA-Datei einliest und nur die Sequenz in einer Zeile wieder ausgibt. Die FASTA-Datei soll dabei nur eine Sequenz enthalten! Wie kann man mit dem zweiten Skript auf der UNIX-Kommandozeile ganz einfach die Länge der Sequenz bestimmen? Perl-Praxis Dateien und Daten 8/20

Ausgaben weiterverarbeiten Unix-Stil: Programme kombinieren: $ ps -ef grep mozilla sort less pipe: Standardeingabe: STDIN while ($line = <STDIN>) {... } kein open oder close Perl-Praxis Dateien und Daten 9/20

Aufgaben Was macht das folgende Programm reader.pl while ($line = <>) { $i++; print "$i: $line"; } wenn man es folgendermaßen aufruft: reader.pl /etc/motd /etc/resolv.conf ls -l reader.pl ls -l reader.pl /etc/motd /etc/resolv.conf ls -l reader.pl /etc/motd - Perl-Praxis Dateien und Daten 10/20

Interaktion STDIN für Benutzereingaben: print "please answer the following questions:\n"; print "name: "; $name = <STDIN>; chomp($name); print "age: "; $age = <STDIN>; chomp($age); print "email: "; $email = <STDIN>; chomp($email); Perl-Praxis Dateien und Daten 11/20

Verzeichnisse lesen Verzeichnis ist auch nur Datei spezielle Befehle zur Interaktion: opendir(dir, "/") die "can t open root directory\n"; while ($file = readdir(dir)) {... } closedir(dir); oder auch wieder @dirs = readdir(dir); readdir liefert Dateinamen, nicht filehandle Perl-Praxis Dateien und Daten 12/20

Aufgabe Kombiniere die Skripte zum Lesen eines FASTA Files und zur Berechnung des GC-Gehalts zu einem Skript, das ein Verzeichnis mit FASTA Files als Eingabe bekommt alle Files in dem Verzeichnis öffnet um den GC-Gehalt der Sequenz zu bestimmen den jeweiligen GC-Gehalt in einem Array als Histogramm speichert das Histogramm tab-delimited ausgibt Erstelle mit Hilfe von gnuplot ein Histogramm der GC-Gehalte der CDSes von E. coli: die CDSes liegen unter: /vol/lehre/perlpraxis/2005/ecoli Erstellen des Histogramms in gnuplot: plot "ecoli gc.histo" with boxes Perl-Praxis Dateien und Daten 13/20

Dateien schreiben filehandle zum Schreiben öffnen: open(result, > results.txt ) die "can t open..."; > Ausgabeumlenkung in Shells filehandle mit close schließen Ausgabe in Datei: print RESULT "$i zum Quadrat ist $i**2\n"; eventuell vorhandene Datei wird überschrieben existierende Datei erweitern: open(result, >> results.txt ); Perl-Praxis Dateien und Daten 14/20

Aufgaben Erweitere das Programm zum Erstellen des GC-Gehalt-Histogramms so, dass das Ergebnis in eine Datei geschrieben wird, die ebenfalls als Parameter übergeben wird. Perl-Praxis Dateien und Daten 15/20

Aufgaben Was macht das folgende Programm? foreach $i (1..1000) { print "$i "; print "\n" unless $i % 5; sleep(1); } Füge folgende Zeile am Anfang ein: $ = 1; Perl-Praxis Dateien und Daten 16/20

buffering $ beeinflußt aktuelles Ausgabe-filehandle select wählt Ausgabe-filehandle ungepufferte Ausgabe in Dateien: open(out, "> numbers.txt") die "can t open output\n"; select(out); $ = 1; foreach $i (1..1000) {... } close(out); Programm starten, dann $ tail -f numbers.txt Was passiert bei gepufferter Ausgabe? Perl-Praxis Dateien und Daten 17/20

filehandles in/aus pipes seitenweise Ausgabe: open(pager, more ) die "can t open pipe\n"; foreach $i (1..400) { print PAGER "$iˆ2 = $i**2\n"; } close(pager); Ausgabe eines Befehls lesen: open(who, who ) die "can t open pipe\n"; while ($line = <WHO>) {... } close(who); Perl-Praxis Dateien und Daten 18/20

backtick evaluation noch ein Shell-Erbe: @files = ls ; $machine = uname -a ; Vorsicht vor unportablen Skripten Perl-Praxis Dateien und Daten 19/20

Aufgaben gnuplot kann als Ausgabe verschiedene Fileformate erzeugen, u.a. Postscript, PDF, PNG, etc. Passe das Programm zur Erstellung der GC-Gehalt-Histogramme so an, dass Files vom Typ eps oder png erzeugt werden können. Die Ausgabe kann in gnuplot z.b. folgendermassen erzeugt werden: gnuplot> set terminal postscript eps color gnuplot> set output "outfile.eps" gnuplot> plot "ecoli gc.histo" Benutze Pipes, um gnuplot aufzurufen und die Grafik zu erzeugen. Perl-Praxis Dateien und Daten 20/20