Shell-Skript zum Analysieren einer Datei (csv) und zum zeilenweisen Verarbeiten

8

Hi Brauchen Sie ein Shell-Skript, um die CSV-Datei zu analysieren - Zeile für Zeile und dann Feld für Feld]

Die Datei wird so aussehen

%Vor%

Ich muss jedes dieser X1, X2 ....

extrahieren

Ich habe ein Skript geschrieben, aber es schlägt fehl, wenn die Zeile eine Zeile überschreitet ..

    
Balualways 14.12.2010, 13:15
quelle

3 Antworten

27

So würde ich es machen.

Zuerst setze ich die IFS-Umgebungsvariable so, dass read sagt, dass "," das Feldtrennzeichen ist.

%Vor%

Da die Datei "input" die von Ihnen angegebenen Daten enthält, kann ich den folgenden Code verwenden:

%Vor%

Um kurz zu wiederholen, was oben passiert. cat test | liest die Datei und leitet sie an while . while führt den Code zwischen do und done aus, während read den Wert true zurückgibt. read liest eine Zeile aus der Standardeingabe und trennt sie in Variablen ("a", "b", "c" und "d") entsprechend dem Wert von $ IFS. Schließlich zeigt echo nur die Variablen an, die wir gelesen haben.

Was mir die folgende Ausgabe gibt

%Vor%

Übrigens, das BASH-Handbuch liest sich immer gut. Du wirst jedes Mal etwas Neues lernen, wenn du es liest.

    
Martin Olsen 14.12.2010, 13:29
quelle
3

Da eykanal AWk und sed erwähnt hat, dachte ich, ich würde zeigen, wie man sie benutzen kann.

%Vor%

oder

%Vor%

Dann könnte ein Shell-Skript ihre Ausgabe verarbeiten:

%Vor%

Natürlich können Sie die Verarbeitung im AWK-Skript durchführen:

%Vor%     
Dennis Williamson 14.12.2010 15:28
quelle
0
  

ls -l

     

vi Dateiname.sh

     

#! bin / sh

     

echo "EINGANGSMUSTER"

     

Katze & gt; Prüfung   (Daten eingeben und speichern)

     

Katzentest | while read (input); (Beispiel: "$ a: $ b: $ c: $ d");

     

erledigt

     

echo "Muster angezeigt als" $ a: $ b: $ c: $ d "\ n"

     

beenden (0;);

    
kiran 22.04.2013 09:28
quelle

Tags und Links