2016-09-09 2 views
2

Ich schreibe mein erstes Skript, also vergib mir meine Anfängerfehler. Ich habe über den ganzen Stack-Überlauf geschaut und nichts gefunden, was mir bei diesem Problem hilft.Dateien in einen neuen Ordner teilen

Das Skript verwendet WinSCP, um auf Ordner in einem Raspberry Pi zuzugreifen und eine Datei zu teilen, die zu groß geworden ist. Dann werden die Unterdateien erneut mit WinSCP auf einen Desktop kopiert. Wir wissen, wie man die Datei aufteilt und wie man sie auf WinSCP überträgt, aber da wir die Namen der Unterdateien nicht kontrollieren können, hielten wir es für sinnvoller, sie in einem Ordner zu speichern und zu verschieben.

Das ist, was ich habe bisher:

#!/bin/bash 
# Data Collector Script 
mkdir $output 
mv split -l 20000 helloworld.txt output //This is the line where I get stuck 

Gibt es eine Weise, die ich die Dateien direkt in eine Ausgabedatei aufteilen? Ich würde sie manuell verschieben, aber die Dateinamen sind zufällig.

Antwort

3

Versuchen Sie folgendes:

split -l 20000 helloworld.txt output/x 

Referenz: http://linux.die.net/man/1/split

+0

Für was ist das x? Ich habe mir die Referenz angesehen, die du angegeben hast, und ich verstehe nicht, woher sie kommt. – zmillard

+0

'output/x' ist das Präfix der erstellten Dateien. Also heißen die Dateien 'output/xaa',' output/xab', 'output/xac', usw. Sie können es auf jeden beliebigen Wert ändern, solange es' output/'beginnt. –

1

@ Rob hat die Antwort, und hier ist ein kleines Skript, es zu benutzen, die gegen BASH die Mängel als Programmiersprache zu verteidigen versucht:

#!/bin/bash 

# make BASH fail on errors and unset variables 
set -eu 

output='output_dir' 
file_to_split="helloworld.txt" 

# make the directory 
# -p means no errors if the directory is there already 
mkdir -p "${output}" 

split -l 20000 "${file_to_split}" "${output}/${file_to_split}." 
Verwandte Themen