2017-10-29 3 views
0

Mit dem folgenden Befehl bekomme ich eine csv-Datei mit einer randomisierten Sequenz.bash: seq 1 4 | shuf> output.csv

seq 1 4 | shuf > output.csv 

Allerdings gibt es eine leere Zeile in der Datei am Ende, wenn die Datei mit Sublime Text 2.

Wie Öffnung, der leeren Zeile zu vermeiden, dass?

+1

Ich habe das versucht, aber keine leeren Zeilen bekommen. Siehst du die leere Zeile, selbst wenn du 'cat' oder' vi' der Datei machst? – Vasan

+0

@Vasan Ich sehe nicht die leere Zeile am Ende beim Öffnen mit cat oder vi, aber ich sehe es beim Öffnen der Datei mit Sublime Text 2 und es wird auch durch die Verarbeitung der Datei weiter sichtbar (einfügen -d "," input1 .csv input2.csv> output.csv), um zwei Dateien Zeile für Zeile hinzuzufügen. – user3550552

+0

haben hier eine Lösung gefunden: unix.stackexchange.com/questions/206918/... paste -d, test1.csv test2.csv | tr -d '\ r'> paste.csv – user3550552

Antwort

1

Eine leere Zeile ist Teil des Unix-Standards oder würde lieber 1,2,3,[email protected]:$ auf Kat. Drucken. Man kann es mit dem gleichen SEQ Befehl direkt in CSV konvertieren:

seq -s ', ' 1 5 

Should Ausgang 1, 2, 3, 4, 5, kann Sie auch den letzten entfernen "" (mit Raum) unter Verwendung

seq -s ', ' 1 5|rev | cut -c 3- | rev 

Wenn Sie nur "" ohne Raum, können Sie -c 3 ändern 2 bis -c

seq -s ',' 1 5|rev | cut -c 2- | rev 

Es wäre Ausgang 1,2,3,4,5

+0

Ich würde gerne zwei cvs-Dateien wie nach Zeile später kombinieren. Zur Zeit verwende ich paste -d "," input1.csv input2.csv> output.csv dafür. Daher suchte ich nach einer Möglichkeit, die Zufallssequenz jeder Zahl in eine neue Zeile zu bekommen. – user3550552

+0

Hier eine Lösung gefunden Hier eine Lösung gefunden: unix.stackexchange.com/questions/206918/... paste -d, test1.csv test2.csv | tr -d '\ r'> paste.csv – user3550552