die Zeile bei x%

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von flappinski, 20.02.2008.

  1. #1 flappinski, 20.02.2008
    flappinski

    flappinski Foren As

    Dabei seit:
    31.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    Hallo:
    ich habe folgendes Problem: Mein Text-Input-File hat x Zeilen. Jetzt möchte ich die Zeile, die bei 30% der Zeilen steht ausgegeben haben. Also bei 200.000 Zeilen möchte ich die 60.000ste Zeile haben. Das geht natürlich irgendwie mit awk, aber ich würde gerne das über die shell tools lösen.
    ungefähr so:
    wc -l input_file | hier einlesen in eine variable z
    head -n (z*0.3) input_file | tail -1

    nun weiss ich nicht, wie die Ausgabe eines Tools in eine shell-variable einlesen kann.
    Vielleicht könnt ihr mir helfen (das könnt ihr bestimmt, sogar),
    Danke,
    Stephan
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 L0s3r, 20.02.2008
    Zuletzt bearbeitet: 20.02.2008
    L0s3r

    L0s3r Tripel-As

    Dabei seit:
    22.09.2007
    Beiträge:
    216
    Zustimmungen:
    0
    Ort:
    MV
    Code:
    LINENUMBERS=$(wc -l input_file | awk '{print $1}')
    head -n $(echo "$LINENUMBERS * 30 / 100" | bc) input_file | tail -1
    So z.B.?
     
  4. #3 Gott_in_schwarz, 20.02.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    in der bourne again shell geht das mit:
    Code:
    var=$(echo 'zomg')
    LINE_C=$(wc -l inFile|awk '{print $1}')
    den awk befehl hab ich da rein gepackt, weil wc bei mir auch das inFile mit ausgibt, ansonsten könntest du es auch über cat machen:
    Code:
    LINE_C=$(cat inFile|wc -l)
    und btw: rechnen kannst du in der bash mit:
    Code:
    i=2
    x=5
    ((i=i*x+3)) #i ist jetzt 13
    v=$((i-x)) #v ist jetzt 8
    das man da allerdings floating point benutzen darf wäre mir neu (also afaik nur integer...) aber dafür gibts ja andere programme.. (siehe auch losers post.)
    und in der sh geht das hier afaik auch nicht:
    Code:
    var=$(echo 'bla')
    da müsste man dann iirc diese etwas "veraltete" schreibweise benutzen:
    Code:
    var=`echo 'bla'`
    also mit backticks.
     
  5. #4 flappinski, 20.02.2008
    flappinski

    flappinski Foren As

    Dabei seit:
    31.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    wunderbar, vielen dank!
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

die Zeile bei x%

Die Seite wird geladen...

die Zeile bei x% - Ähnliche Themen

  1. Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...

    Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...: Ich habe eine Textdatei in der ich Einträge bis zum 3. Leerzeichen mit den restlichen Zeilen (auch nur bis 3. Leerzeichen) vergleichen muss und...
  2. 2 Zeilen aus einer txt auslesen

    2 Zeilen aus einer txt auslesen: Hallo Leute, ich habe eine Datei die immer aus zwei zusammenhängenden Zeilen besteht, als Beispiel: DE0006231004 # 15,04 Infineon DE0005785604...
  3. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...
  4. for schleife für eine Zeile

    for schleife für eine Zeile: Hallo, ich bin neu hier in diesem Forum. Evtl. kann mir ja einer von euch bei meinem Problem helfen. Ich möchte für ein entpackprogramm eine...
  5. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...