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