Bash:
Arbeta med CSV
Hur man gör:
Läsa en CSV-fil rad för rad
while IFS=, read -r kolumn1 kolumn2 kolumn3
do
echo "Kolumn 1: $kolumn1, Kolumn 2: $kolumn2, Kolumn 3: $kolumn3"
done < sample.csv
Exempel på utdata:
Kolumn 1: id, Kolumn 2: namn, Kolumn 3: email
...
Filtrera CSV-rader baserat på ett villkor
Med awk
kan du enkelt filtrera rader. Till exempel för att hitta rader där den andra kolumnen är lika med “Alice”:
awk -F, '$2 == "Alice" { print $0 }' sample.csv
Modifiera ett kolumnvärde
För att ändra andra kolumnen till versaler:
awk -F, 'BEGIN {OFS=",";} { $2 = toupper($2); print $0; }' sample.csv
Sortera en CSV-fil baserat på en kolumn
Du kan sortera en CSV-fil baserat på, säg, den tredje kolumnen (numeriskt):
sort -t, -k3,3n sample.csv
Använda csvkit
för mer komplexa uppgifter
csvkit
är en svit av kommandoradsverktyg för att konvertera till och arbeta med CSV. Det kan installeras via pip.
För att konvertera en JSON-fil till CSV:
in2csv data.json > data.csv
För att fråga en CSV-fil med SQL:
csvsql --query "SELECT name FROM sample WHERE id = 10" sample.csv
Obs: Installation av csvkit
kräver Python och kan göras med hjälp av pip install csvkit
.