# ausgabe von gewissen zeilen einer tabelle ins terminal



## Caterinalucia (19. Oktober 2010)

Hallo zusammen!
Ich teste gerade ubuntu (habs mal auf CD gebrannt) und komme damit leider noch nicht so gut zurecht. Ich habe Messdaten tabellarisch angeordnet als txt file und möchte mir nun aus einer Spalte - nennen wir sie X- jene Werte ausgeben lassen, die grösser als 4 sind. 
Ist es auch noch möglich, mir die passende Probenummer in Spalte Y dazu anzeigen zu lassen?

Mal mein Ansatz: Im Terminal: cat |  /home/ubuntu/Dokumente/Messwerte_Sept10 | sort X | cut X>4 |wc
Das klappt leider gar nicht: Es sag mir Kommando nicht bekannt.

Würde mich freuen, wenn mir jemand helfen und allenfalls einen Tipp geben könnte, wie ich mir die passenden Werte in Y auch noch ausgeben lassen kann.

Vielen Dank schon jetzt!


----------



## deepthroat (20. Oktober 2010)

Hi.





Caterinalucia hat gesagt.:


> Hallo zusammen!
> Ich teste gerade ubuntu (habs mal auf CD gebrannt) und komme damit leider noch nicht so gut zurecht. Ich habe Messdaten tabellarisch angeordnet als txt file und möchte mir nun aus einer Spalte - nennen wir sie X- jene Werte ausgeben lassen, die grösser als 4 sind.


Du hättest dir übrigens einfach Cygwin installieren können. Oder die Programme einfach für Windows installieren (z.B. http://gnuwin32.sourceforge.net/)


Caterinalucia hat gesagt.:


> Ist es auch noch möglich, mir die passende Probenummer in Spalte Y dazu anzeigen zu lassen?
> 
> Mal mein Ansatz: Im Terminal: cat |  /home/ubuntu/Dokumente/Messwerte_Sept10 | sort X | cut X>4 |wc
> Das klappt leider gar nicht: Es sag mir Kommando nicht bekannt.


Du hast versucht /home/ubuntu/Dokumente/Messwerte_Sept10 als Befehl auszuführen. Das kann natürlich nicht funktionieren. Du meintest vermutlich soetwas wie

```
sort /home/ubuntu/Dokumente/Messwerte_Sept10 | cut -s -f 2,3 | while read x y; do 
  if [[ $x -gt 4 ]]; then echo $b; fi
done
```
Du solltest dir einfach mal die Handbuchseiten ("man cat", "man sort", "man cut" usw.) durchlesen.

Da deine Abfrage schon etwas komplexer ist, würde ich hier fast zu einer (kleinen) Programmiersprache (AWK, Perl, Python etc.) greifen.

\edit: Gerade AWK ist dafür ausgesprochen gut geeignet:

```
sort /home/ubuntu/Dokumente/Messwerte_Sept10 | awk '$2 > 4 { print $3 }'
```
Gruß


----------



## Bratkartoffel (20. Oktober 2010)

Hallo,

das folgende Script sollte seinen Zweck erfüllen, ist aber ungetestet. Bei den Variablen am Anfang musst du halt deine Werte eintragen.


```
trenner="$'\t'"
x=3
y=4

alles=$( cat /home/ubuntu/Dokumente/Messwerte_Sept10 | sort | cut -d"$trenner" -f$x,$y )
for zeile in $alles; do
  if [ $( echo "$zeile" | cut -d"$trenner" -f 1 ) -gt 4 ]; then
    echo $zeile
  fi
done
```

Falls es nicht funktioniert ist es für mich allerdings fast unmöglich Verbesserungen zu machen, ausser du schreibst hier ein paar Testdatensätze damit ich es ausprobieren kann 

Gruß
BK


----------



## Caterinalucia (25. Oktober 2010)

Danke für die Antworten! Ich bin mittlerweile schon viel schlauer geworden! ;-) um nicht immer den ganzen Dateipfad angeben zu müssen kann man ja mit cd bequem ins passende Verzeichnis wechseln. 
Es gibt auch noch die relativ schnelle Variante grep, damit habe ich nach 4.xxx gesucht und siehe da, alles Passende wurde ausgespuckt (ja zum Glück gab es keinen Wert, der 4.000 betrug...) *freu*danach kann man ja mit cut das weniger Wünschenswerte rausschneiden ;-)

Naja, dafür habe ich wieder ein neues Problem. Wie bezeichnet ubuntu eigentlich ein bestimmtes Feld? Ist dem ein eindeutiges f und n zugeorndet, sodass ich gewisse Daten miteinander verrechnen kann? (so wie im Excel meine ich)

lg und nochmals vielen Dank für die Hilfe!


----------



## deepthroat (26. Oktober 2010)

Hi.





Caterinalucia hat gesagt.:


> Naja, dafür habe ich wieder ein neues Problem. Wie bezeichnet ubuntu eigentlich ein bestimmtes Feld?


Also Ubuntu ist eine Distribution von Linux. Linux ist ein Betriebssystem. Da gibt es keine Felder.

Je nach dem mit welchem Programm du arbeitest gibt es bestimmte Notationen. Das hat mit dem verwendeten Betriebssystem gar nichts zu tun.

Wie "cut" die Felder bezeichnet steht in der Manpage: "man cut" 


Caterinalucia hat gesagt.:


> Ist dem ein eindeutiges f und n zugeorndet, sodass ich gewisse Daten miteinander verrechnen kann? (so wie im Excel meine ich)


Warum nimmst du dafür nicht eine Tabellenkalkulation (Gnumeric, OpenOffice.org Calc etc.) wenn du diese Funktionen brauchst?

Gruß


----------

