Berechnen Sie die Summe einer Spalte mit dem „Awk“-Skript in Bash

Wenn die Daten in einer Datei in einem Tabellenformat gespeichert sind, die eine oder mehrere Spalten der numerischen Daten enthält, und wenn die Summe einer Spalte mit den numerischen Daten berechnet werden muss, kann das „awk“-Skript für diese Aufgabe verwendet werden . Das „awk“-Skript wird in Bash für viele Zwecke verwendet. In diesem Tutorial wird gezeigt, wie das „awk“-Skript in Bash zum Berechnen der Summe einer Spalte verwendet wird.

Verschiedene Beispiele zur Berechnung der Spaltensumme

Der Befehl „awk“ kann auf verschiedene Arten verwendet werden, um die Summe einer Spalte aus einer Datei zu berechnen, die numerische Daten enthält. Die Datei kann eine CSV-Datei oder eine Textdatei sein. In diesem Teil des Tutorials werden verschiedene Möglichkeiten zur Berechnung der Summe einer Spalte gezeigt.

Beispiel 1: Berechnen Sie die Summe einer Spalte mit dem einfachen Befehl „Awk“.

Erstellen Sie eine Textdatei mit dem Namen „courses.txt“ mit den folgenden Daten. Die zweite Spalte dieser Datei enthält numerische Daten und die Datei enthält keine Überschriftendaten:

CSE202 2.0
CSE407 1.0
CSE305 3.0
ACC101 2.0

Erstellen Sie mit dem folgenden Skript eine Bash-Datei, die den Dateinamen vom Benutzer übernimmt. Wenn der Dateiname mit der Datei „courses.txt“ übereinstimmt, wird die Summe der Werte der zweiten Spalte aus dieser Datei mit dem Befehl „awk“ berechnet. Der Befehl „awk“ wird hier zusammen mit dem Befehl „cat“ verwendet, um den Inhalt der zweiten Spalte der Datei „courses.txt“ auszulesen. Anschließend wird der Summenwert gedruckt.

#!/bin/bash
#Nehmen Sie den Dateinamen
echo -n „Geben Sie den Dateinamen ein:“
Dateinamen lesen

#Überprüfen Sie, ob der gültige Dateiname angegeben ist oder nicht
Wenn [[ $filename != „courses.txt“ ]]; Dann
echo „Es wurde ein ungültiger Dateiname angegeben.“
Ausgang 0
fi
#Berechnen Sie die Summe der gesamten Kreditstunden
total=`cat $filename | awk ‚{sum+=$2} END {print „Gesamtzahl der Kursstunden: “ sum}’`
#Den berechneten Wert drucken
echo $total

Die folgende Ausgabe zeigt die Summe von 2,0+1,0+3,0+2,0, also 8,0:

Beispiel 2: Berechnen Sie die Summe einer Spalte mit dem einfachen „Awk“-Befehl mit NR

Erstellen Sie eine CSV-Datei mit dem Namen „employees.csv“ mit den folgenden Daten. Die dritte Spalte dieser Datei enthält numerische Daten und die Datei enthält die Überschriftendaten:

ID, Name, Gehalt
5623, Mehrab Hossain, 90000
1355, Mila Chowdhury, 125000
3517, Jafar Iqbal, 300000
7554, Zia Rahman, 450000
8652, Rupa Chakrobarty, 260000

Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das den Dateinamen aus dem Befehlszeilenargument übernimmt. Wenn der Dateiname mit der Datei „employees.csv“ übereinstimmt, wird die Summe der Werte der dritten Spalte ohne die Überschrift aus dieser Datei mit dem Befehl „awk“ berechnet. Der Befehl „awk“ verwendet hier den Wert „NR“, um die Überschrift der dritten Spalte der Datei wegzulassen. Anschließend wird der Summenwert gedruckt.

#!/bin/bash
#Überprüfen Sie, ob der Dateiname angegeben ist oder nicht
Wenn [ $# -lt 1 ]; Dann
echo „Argument fehlt.“
Ausgang 0
fi
Dateiname=$1
#Überprüfen Sie, ob der gültige Dateiname angegeben ist oder nicht
Wenn [[ $filename != „employees.csv“ ]]; Dann
echo „Es wurde ein ungültiger Dateiname angegeben.“
Ausgang 0
fi
#Berechnen Sie die Summe des Felds „Gehalt“ der Datei „employees.csv“.
total=`awk -F „,“ ‚NR!=1{Total=Total+$3} END{print „Das Gesamtgehalt der Mitarbeiter beträgt: $“ Total}‘ >#Den berechneten Wert drucken
echo $total

Das Skript wird in der folgenden Ausgabe zweimal ausgeführt. Das Skript wird bei der ersten Ausführung ohne Argument ausgeführt, sodass die Fehlermeldung ausgegeben wird. Das Skript wird in der zweiten Ausführung mit einem gültigen Argumentwert ausgeführt, daher wird der Summenwert ausgegeben:

Beispiel 3: Berechnen Sie die Summe einer Spalte mit dem einfachen „Awk“-Befehl mit FS

Erstellen Sie eine Textdatei mit dem Namen „sales.txt“ mit den folgenden Daten. Das „:“ wird in der Datei verwendet, um die Spalte und die zweite Spalte dieser Datei, die die numerischen Daten enthält, zu trennen. Die Datei enthält keine Überschriftsdaten.

Jan.:60000
Februar:34000
März:120000
April: 56000
Mai:65000
Juni:20000

Erstellen Sie mit dem folgenden Skript eine Bash-Datei, die den Dateinamen vom Benutzer übernimmt. Wenn der Dateiname mit der Datei „sales.txt“ übereinstimmt, wird die Summe der Werte der zweiten Spalte aus dieser Datei mit dem Befehl „awk“ berechnet. Der Befehl „awk“ wird hier mit dem Wert „FS“ verwendet, um das Feldtrennzeichen zwischen den Spalten der Datei zu definieren. Anschließend wird der Summenwert gedruckt.

#!/bin/bash
#Nehmen Sie den Dateinamen
echo -n „Geben Sie den Dateinamen ein:“
Dateinamen lesen

#Überprüfen Sie, ob der gültige Dateiname angegeben ist oder nicht
Wenn [[ $filename != „sales.txt“ ]]; Dann
echo „Es wurde ein ungültiger Dateiname angegeben.“
Ausgang 0
anders
#Drucken Sie den Dateiinhalt
cat $Dateiname
fi

#Drucken Sie den Gesamtverkaufsbetrag mithilfe des Feldtrennzeichens aus
Katze $Dateiname | awk ‚BEGIN{FS=“:“; sum=0} {sum+=$2} END{print „Gesamtumsatz: $“ sum}‘

Die folgende Ausgabe erscheint, wenn „sales.txt“ als Eingabe verwendet wird:

Abschluss

In diesem Tutorial werden mehrere Möglichkeiten zum Berechnen der Summe einer Spalte aus einer Datei mithilfe des Befehls „awk“ gezeigt.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen