The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Legen Sie mehrere Zeilen in eine Datei c0mrade Shell Programmierung und Scripting 12 09-04-2008 05:04 PM
Hinzufügen von mehreren Zeilen zu mehreren Dateien dayinthelife Shell Programmierung und Scripting 2 06-04-2008 12:50 PM
So kopieren Sie mehrere Zeilen aus einer Datei zu einem anderen mit AWK? jisha Shell Programmierung und Scripting 3 01-08-2008 01:04 AM
Benötigen Sie zu löschen mehrere Zeilen in einer Datei. kangdom Shell Programmierung und Scripting 6 10-16-2006 12:02 PM
Fügen Sie mehrere Zeilen in eine bestehende Datei hkhan12 Shell Programmierung und Scripting 5 09-08-2006 12:11 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 02-13-2008
dala dala is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 7
abgerufen werden mehrere Zeilen auf mehreren Plätzen in eine Datei

Ich habe eine Datei mit den folgenden Zeilen:

erste Zeile
zweite Zeile
dritte Zeile
etwas geht hier
etwas anderes wird hier
etwas geht hier
erste line1
Sekunden line2
dritter Linie 3

Ich brauche, um durch die Datei abgerufen und diese Zeilen zu drucken und die Ausgabe sollte wie folgt aussehen:

erste Zeile
zweite Zeile
dritte Zeile
erste line1
Sekunden line2
dritter Linie 3

Bitte helfen Sie mir starten. Ich habe while-Schleife, aber die Ausgabe war nicht das, was ich will es.
  #2 (permalink)  
Old 02-13-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala-Modus
  
 

Join Date: Feb 2007
Ort: Innsbruck, Österreich
Beiträge: 1886
Wie Sie wissen, welche Zeilen, die Sie wollen, und welche nicht?

Nehmen wir an, Sie wollen, 3 Zeilen, 3 Zeilen überspringen, etc. Hier ist nur eine Möglichkeit (mit GNU awk):

Code:
 awk '(int((FNR-1)/ 3))%2 == 0'  filename
  #3 (permalink)  
Old 02-14-2008
dala dala is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 7
Zitat:
Zitat von otheus View Post
Wie Sie wissen, welche Zeilen, die Sie wollen, und welche nicht?

Nehmen wir an, Sie wollen, 3 Zeilen, 3 Zeilen überspringen, etc. Hier ist nur eine Möglichkeit (mit GNU awk):

Code:
 awk '(int((FNR-1)/ 3))%2 == 0'  filename
Thx otheus die Antwort auf Ihre Frage, ich bin mit `grep" ^ erste "", wenn ich es möchte ich fortsetzen und für die grep "^ zweiten" Wort und so weiter.
  #4 (permalink)  
Old 02-14-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala-Modus
  
 

Join Date: Feb 2007
Ort: Innsbruck, Österreich
Beiträge: 1886
Zitat:
Zitat von dala View Post
Thx otheus die Antwort auf Ihre Frage, ich bin mit `grep" ^ erste "", wenn ich es möchte ich fortsetzen und für die grep "^ zweiten" Wort und so weiter.
Okay, so kann man mit "egrep" für eine weitere interessante Regulärer Ausdruck:

Code:
egrep "^(first|second|third) " infile.txt
Wenn dies nicht funktioniert, einfach mit awk Syntax nahezu identisch:

Code:
awk "/^(first|second|third) /" infile.txt
  #5 (permalink)  
Old 02-14-2008
ghostdog74 ghostdog74 is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Sep 2006
Posts: 2538
Zitat:
Zitat von dala View Post
Bitte helfen Sie mir starten. Ich habe while-Schleife, aber die Ausgabe war nicht das, was ich will es.
Code:
while  read -r line
do
    case $line in
        first*|second*|third* ) echo "$line";;
    esac 
done < "file"
  #6 (permalink)  
Old 02-14-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala-Modus
  
 

Join Date: Feb 2007
Ort: Innsbruck, Österreich
Beiträge: 1886
Zitat:
Zitat von ghostdog74 View Post
Code:
while  read -r line
do
    case $line in
        first*|second*|third* ) echo "$line";;
    esac 
done < "file"
Das sieht aus wie es arbeiten sollte, wenn, wie ich bereits sagte, die grep / awk Lösung wäre effizienter. Vielleicht sollten Sie doppelte Anführungszeichen um die $ line, wie in:
Code:
case "$line" in
In ksh und bash, können Sie auch analysieren die ersten Wort aus dem Rest:
Code:
case "${line%% *}" in
   first|second|third) echo "$line";;
esac
  #7 (permalink)  
Old 02-14-2008
ghostdog74 ghostdog74 is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Sep 2006
Posts: 2538
Zitat:
Zitat von otheus View Post
In ksh und bash, können Sie auch analysieren die ersten Wort aus dem Rest:
Code:
case "${line%% *}" in
   first|second|third) echo "$line";;
esac
Code:
while read -r a b
do
 case $a in 
  ....
 esac
done
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:31 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0