2016-09-09 2 views
2

Я пишу свой первый сценарий, так что простите меня за мои новички. Я искал все переполнение стека и не нашел ничего, что помогло бы мне с этой проблемой.Разбиение файлов в новую папку

Сценарий будет использовать WinSCP для доступа к папкам в малине Pi и разделить файл, который стал слишком большим. Затем он снова скопирует субфайлы на рабочий стол с помощью WinSCP. Мы знаем, как разделить файл и как переместить его в WinSCP, но поскольку мы не можем управлять именами подфайлов, мы думали, что имеет смысл хранить их в папке и переместить их.

Это то, что я до сих пор:

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

Есть ли способ, что я могу непосредственно разделить файлы в выходной файл? Я бы переместил их вручную, но имена файлов были случайными.

ответ

3

Попробуйте это:

split -l 20000 helloworld.txt output/x 

Ссылка: http://linux.die.net/man/1/split

+0

Что такое x для? Я посмотрел ссылку, которую вы дали, и я не понимаю, откуда она взялась. – zmillard

+0

'output/x' - префикс созданных файлов. Таким образом, файлы будут называться 'output/xaa',' output/xab', 'output/xac' и т. Д. Не стесняйтесь изменять его на любое удобное значение, если оно начинается' output/'. –

1

@Rob есть ответ, и вот небольшой скрипт, использующий его, который пытается защитить от недостатков Баша как язык программирования:

#!/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}." 
Смежные вопросы