2017-11-30 4 views
0

Ich arbeite mit GRASS GIS mit PuTTy-Konsole und ich möchte Statistiken, die ich erhalten, in Textdatei speichern.speichern Ausgangsstatistiken in Datei mit Bash

> r.stats -c xyz 
1 286048 
2 151 
3 473 
4 12030 
5 197 
* 107401 

Ich möchte awk verwenden, um eine Matrix zu erstellen, aber mein Problem ist, das Ergebnis des richtigen Befehls zu speichern, die ich verwendet habe.

Ich weiß in der Regel, dass es sein könnte:

> awk -F "{print $1 $2}" from >> to 

Aber wie soll es wie in meinem Fall aussehen?

+0

Wie möchten Sie Ihre Matrix aussehen und die'Awk 'Befehl, sonst wird '$ 1' und' $ 2' als Positionsargumente behandelt, die in diesem Fall zu nichts erweitert werden. – Inian

+0

Was genau sollte das Format der Ausgabematrix sein? Ich bin mir nicht sicher, ob ich vollständig verstehe, was Sie erreichen wollen. – Nepho

+0

Ich habe ein Raster von gesunden und toten Bäumen. Dieses Ergebnis zeigt die Anzahl der Pixel von einem Raster, die dieselbe Klasse in einem anderen Raster abdecken. Ich hätte gerne Matrix 2x2 mit: gesund-gesund, gesund-tot, tot-gesund, tot-tot. Aber erstens, nur um es in der richtigen Weise zu einer Textdatei zu speichern. – AngelikaG

Antwort

0

Sie können so etwas wie versuchen: -

awk '!(NR%2){printf "%d\n", $2}NR%2{printf "%d\t", $2 }' file 
286048 151 
473  12030 
197  107401 
0

Ich glaube, Sie andere Regeln, die in der Frage angegeben werden, nicht auf die erwartete Ausgabe in den Kommentaren basiert. Dies wird auf der Grundlage meiner Interpretation Ihrer Anforderungen drucken: erste Zeile überspringen, zweite Felder der folgenden Zeilen paaren und nur paarweise drucken ...

$ awk 'NR==1{next} {if(NR%2) print v, $2; else v=$2}' file 

151 473 
12030 197