2016-10-30 3 views
0

Ich habe IDs in der ersten Spalte von data.csv mit Headern. Ich möchte die Kopfzeile überspringen und Spalte 1 Werte in der Variablen ids als 102 103 104 ... speichern. Pseudocode in der Linie ids.append($col1) wobei I den Strom Zeilenwert an das Ende der Leitung mit einem RaumWie CSV-Datei für lange Zeile in Bash analysieren?

# http://stackoverflow.com/a/4286841/54964 
while IFS=, read col1 
do 
    ids.append($col1) # Pseudocode 
done < data.csv 

data.csv

102 
103 
104 

Erwarteter Ausgang

ids=(102 103 104) 
angehängt werden soll

Betriebssystem: Debian 8.5
Bash: 4.3.30 (1)

Antwort

2

Mit GNU bash und GNU Schwanz:

#!/bin/bash 

array=() 
while IFS=, read -r col1 coln 
do 
    array+=("$col1") # append $col1 to array array 
done < <(tail -n +2 data.csv) 

declare -p array 
+0

Ich benutze hier das Sie Inhalte von Array Array zu zeigen. – Cyrus

+1

Wenn ich ',' durch ':' und 'data.csv' durch'/etc/passwd' ersetze, werden alle Benutzer meines Linux-Systems zurückgegeben: 'declare -a array = '([0] =" root "[1 ] = "daemon" [2] = "bin" [3] = "sys" [4] = "sync" [5] = "spiele" [6] = "mann" [7] = "lp" [8] = "mail" [9] = "news" [10] = "uucp" [11] = "proxy" [12] = "www-data" [13] = "backup" [14] = "liste" [15 ] = "irc" [16] = "gnats" [17] = "niemand" [18] = "libuuid" [19] = "syslog" [20] = "messagebus" [21] = "usbmux" [22] = "avahi-autoipd" [23] = "avahi" [24] = "kernops" [25] = "Puls" [26] = "rtkit" [27] = "hplip" [28] = "kdm" [29 ] = "saned" [30] = "bar" [31] = "sshd" [32] = "cyrus" [33] = "foo" [34] = "dnsmasq") " – Cyrus

+1

Ich habe meine Antwort aktualisiert Überspringen der ersten Zeile der Datei – Cyrus

Verwandte Themen