Veröffentlicht 13. Januar 200520 j Hallo, ich sitz hier grad vor nen Riesenproblem. Unzwar hab ich hier etwa 400 Textdateien, und in diesen Dateien muß ich eine Zeile einfügen und eine Zahlenkombination (die in den Dateien unterschiedlich ist) erstzen durch eine bestimmte, und das natürlich bis vorgestern. Da ich die ganzen Dateien nich einzeln bearbeiten möchte hab ich mir gedacht schreib ich nen kleines Script, das diese Aufgabe für mich erledigt, is ja auch scneller. Da meine Kenntnisse in Shell- Programmierung aber sogut wie nich existent sind, begab ich mich auf die Suche anch nen Howto. Hab allerdings nix brauchbares gefunden (oder ich bin einfach zu blöd dafür). Meine Frage is nu mit welchen Howtos ihrs gelernt hab oder welche Seiten ihr empfehlen könnt. Achso die man-pages wollt ich mir angucken, nur kann ich hier irgendwie grad keine einzige man-page öffnen. :confused: Grüße
13. Januar 200520 j hallo, einfügen der letzten Zeile geht so: echo "letzte zeile" >> Datei Ansonsten nimmst den sed: http://www.tty1.net/sed-tutorium/html/ http://www.hmug.org/man/1/sed.html oder awk: http://www.64-bit.de/dokumentationen/progr-software/a/005/awk.html http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?awk cya alligator
17. Januar 200520 j OK danke schonma. Habs jetzt so halbwegs hingekriegt. Haupscript: #!/bin/sh files=`ls /Verzeichnispfad/` for file in $files do sed -f sedscr /Verzeichnispfad/$file >> $file echo $file' Einzufügende Text' >> $file done sedscr: s/.*\; serial*/ 2005011701\ ;serial/ Soweit sogut. Jetzt meine Frage die Dateien heißen alle *.*.end und in die Zeile die ich einfügen will muß ganz am Zeilenamfang *.* stehen. Also hab ich mir gedacht ich nehm den Dateinamen -das .end. Aber wie krieg ich das hin das er das .end nicht mit ausgibt, oder ich alle Dateien umbenenne in den Nmaen ohne .end ?? Grüße
17. Januar 200520 j Hallo, sorry ich hab nicht verstanden was du willst. Am besten ein Beispiel machen. cya alligator
18. Januar 200520 j Danke habs schon hingekriegt (mit awk). #!/bin/sh files=`ls /pfad/` for file in $files do sed -f sedscr /pfad/$file >> $file echo `ls $file |awk -F . '{print mv $1 "."end $2}'`' einzufügender Text' >> $file done Grüße
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.