Anzeige:
Ergebnis 1 bis 6 von 6

Thema: shell - script

  1. #1
    Registrierter Benutzer
    Registriert seit
    Nov 2001
    Beiträge
    311

    shell - script

    hi,

    ich suche eine commandline script (shell) wie folgt.....

    ich habe 1 datei mit

    "Anfang"
    Name_1
    Name_2
    Name_3
    Name_4
    usw.
    .
    .
    .
    "Ende"

    das script soll nun diese zeilen auslesen und jeweils in eine neue datei eine Zeile schreiben...

    Also.....
    "Anfang"

    Name_1.......Neue Datei mit dem Namen "Name_1.txt" erstellen und in diese in der ersten Zeile "Name_1" schreiben

    Name_2.......Neue Datei mit dem Namen "Name_2.txt" erstellen und in diese in der ersten Zeile "Name_2" schreiben

    Name_3.......Neue Datei mit dem Namen "Name_3.txt" erstellen und in diese in der ersten Zeile "Name_3" schreiben

    Name_4.......Neue Datei mit dem Namen "Name_4.txt" erstellen und in diese in der ersten Zeile "Name_4" schreiben
    usw.
    .
    .
    .
    "Ende"

    Wo gibt es Info zur Shell programmierung?

    Lehrling

  2. #2
    Registrierter Benutzer Avatar von martin
    Registriert seit
    Mar 2002
    Ort
    Bochum
    Beiträge
    747
    In shell bin ich nicht so gut. Darum das Bsp. in Perl:

    Code:
    #################################
    #! /usr/bin/perl
    
    $datei=$ARGV[0];
    $ordner=$ARGV[1];
    
    if ($datei eq "" || $ordner eq ""){
            print "\nUsage: perl script.pl Liste_Datei ZielVerzeichnis\n\n";
    }
    open (DATEI, "$datei");
    while (< DATEI >) { #den abstand zwischen < und Datei und > weglassen
            chomp;
            $zeile=$_;
            open (ZEILE, ">$ordner\/$zeile.txt");
            print ZEILE $zeile;
            close(ZEILE);
    
    }
    close(DATEI);
    ######################################
    Wie gesagt, nur ein grobes Bsp.

    martin


    ach so geht das, mit Code
    Geändert von martin (23.06.02 um 14:34 Uhr)

  3. #3
    Freelancer Avatar von michael.sprick
    Registriert seit
    Jun 2002
    Ort
    Paderborn
    Beiträge
    857
    also in perl kannste es so machen:


    Code:
    #!/usr/bin/perl -W
    
    my $file ="ausgangsdatei.txt";
    
    open(FILE,$file);
    @array=<FILE>;
    close(FILE);
    
    foreach(@array){
    chomp($_);
    print `touch $_\.txt`
    }
    
    print "Dateien wurde angelegt\n\n\n";

    ....wenn dieses "Anfang" und "Ende" in der Datei auch drinsteht, musst Du es rausgreppen oder einfach innerhalb des foreach noch einen regex oder ´ne if-bedingung unterbringen...

    wäre ´ne Lösung in Perl.
    (einfach der Datei ausführechte geben, fertig...)

    gruss, B *g*

  4. #4
    Freelancer Avatar von michael.sprick
    Registriert seit
    Jun 2002
    Ort
    Paderborn
    Beiträge
    857
    jo....oder so.

    oder nee....vergiss meine Lösung. ich lege die Datei nur an - Martin schreibt auch die erste Zeile....hab ich vergessen. sorry

  5. #5
    Registrierter Benutzer Avatar von martin
    Registriert seit
    Mar 2002
    Ort
    Bochum
    Beiträge
    747
    Nimm nich mein Bsp. Der hat die Klammern bei mir nicht genommen.
    Wozu der Code Tag, wenn er es doch übersetzt. Doofes Board!



    So, wenn Du den Abstand weglässt, kannst Du es benutzen
    Geändert von martin (23.06.02 um 14:33 Uhr)

  6. #6
    12te
    Registriert seit
    Dec 2001
    Beiträge
    1.377
    #!/bin/sh
    set -x
    for i in `cat test`; do
    echo $i > $i.txt
    done
    So sollte es in der Shell gehen !
    pornstars-online.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •