Ich muss ein Skript erstellen, das in der Lage sein wird, die Spalten zu summieren. Die Datei sieht wie folgt aus:Mehrere Argumente in Shell-Skript mit awk
1 2 3
1 2
1
Während ./sum.sh
Skript ohne das Argument der Ausführung ich die Summe aller Spalten erhalten so die Antwort ist 10. Aber ich muss es nur bestimmte Spalten machen hinzuzufügen. Zum Beispiel ./sum.sh 1 3
sollte erste und dritte Spalte summiert und 6.
Meinen Code geben:
sum=0
if [[ $# -eq 0 ]]; then
awk '{for(i=1;i<=NF;i++) sum+=$i;}; END {print sum}' plik.txt
else
exit 0;
fi
while [ $# -gt 0 ]
do
awk '{sum +="$1"} END {print sum}' plik.txt
shift
done
Ich denke, dass ich zu der Lösung ganz in der Nähe bin, aber da muss etwas fehlen.
a Es gibt Gute Lösung hier, ohne 'awk' zu verwenden: http://stackoverflow.com/questions/33006845/how-to-sum-a-row-of-numbers-from-text-file-bash-shell Wenn Sie dies vorhaben, ist es besser, awk zu entscheiden, ob pro Zeile ein Argument oder mehr vorhanden ist. – Yaron
Aber ich muss es mit awk tun. Ich weiß, dass dies zwar nicht so schlecht ist, aber es gibt nur einen kleinen Teil, den ich vermisse, um das zu erreichen, was ich will. – codddeer123
Die von mir bereitgestellte Lösung wird nicht pro Zeile gedruckt. Wenn Sie die Summe pro Zeile berechnen möchten, muss ich einige kleine Änderungen vornehmen. – Yaron