Website-Suche

So entfernen Sie Spalten aus einer CSV-Datei basierend auf der Spaltennummer mithilfe der Bash-Shell


Im folgenden Beispiel zeigen wir, wie Sie Spalten basierend auf der Spaltennummer aus der CSV-Datei entfernen. Stellen Sie sich eine folgende durch Linux-Befehle getrennte Datei mit 10 Spalten vor:


cat temp.csv 
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10

Im ersten Beispiel werden wir die zweite Spalte entfernen. Das beste Werkzeug für diese Aufgabe ist der Befehl cut:


cut -d, -f2 --complement temp.csv 
1,3,4,5,6,7,8,9,10
1,3,4,5,6,7,8,9,10
1,3,4,5,6,7,8,9,10
1,3,4,5,6,7,8,9,10
1,3,4,5,6,7,8,9,10
1,3,4,5,6,7,8,9,10
1,3,4,5,6,7,8,9,10

Als nächstes entfernen wir alle Spalten im Bereich 2-4 und 7,9:


cut -d, -f2-4,7-9 --complement temp.csv 
1,5,6,10
1,5,6,10
1,5,6,10
1,5,6,10
1,5,6,10
1,5,6,10
1,5,6,10

Entfernen Sie die Option --complement, um die Spalten 1,5,6,10 zu entfernen:


cut -d, -f2-4,7-9 temp.csv 
2,3,4,7,8,9
2,3,4,7,8,9
2,3,4,7,8,9
2,3,4,7,8,9
2,3,4,7,8,9
2,3,4,7,8,9
2,3,4,7,8,9

Im letzten Beispiel entfernen wir die Spalten 1,5,7 mit der Variablen bash:


remove='1,5,7'
cut -d, -f$remove --complement temp.csv 
2,3,4,6,8,9,10
2,3,4,6,8,9,10
2,3,4,6,8,9,10
2,3,4,6,8,9,10
2,3,4,6,8,9,10
2,3,4,6,8,9,10
2,3,4,6,8,9,10

Verwandte Artikel: