2017-11-08 3 views
1

Ich habe eine Datei zu Summe (tmp0.tmp) einer Säule, die mit negativen und positiven Werten, wie folgt aus:awk Verwenden einer Ganzzahl zu einer Spalte in bash

-109.372 
-152.846 
121.435 
122.107 
-1.172 
-118.116 

I 360 bis Summe jeder negativen wollen Wert, und halten Sie die positiven in der gleichen Position.

ich getan habe:

for file in tmp0.tmp 
do 
awk '{if ($1 < 0) {print $1+360} elseif {print $1}' $file > histogram.dat 
done 

und es hat nicht funktioniert.

Kann mir bitte jemand helfen?

while read -r n; do echo "if ($n<0) $n+360 else $n" | bc; done <tmp0.tmp 

Der Ausgang:

Dank

+0

Lesen Sie die Syntax Fehlermeldungen und beheben Sie sie mit Hilfe der man-Seite und/oder Google. –

Antwort

3

Sie es awk mit tun können, loops

awk '$1<0{$1+=360}1' inputfile 
250.628 
207.154 
121.435 
122.107 
358.828 
241.884 
0

nur eine andere Art mit bash + bc keine Notwendigkeit verwenden

250.628 
207.154 
121.435 
122.107 
358.828 
241.884 
Verwandte Themen