将文件拆分为新文件夹

时间:2016-09-09 18:42:20

标签: linux shell split

我正在编写我的第一个脚本,请原谅我初学者的错误。我一直在寻找堆栈溢出,并没有发现任何可以帮助我解决这个问题。

该脚本将使用WinSCP访问Raspberry 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

有没有办法可以直接将文件拆分成输出文件?我会手动移动它们,但文件名是随机的。

2 个答案:

答案 0 :(得分:3)

试试这个:

split -l 20000 helloworld.txt output/x

参考:http://linux.die.net/man/1/split

答案 1 :(得分:1)

@Rob有答案,这是一个使用它的小脚本,试图抵御BASH作为编程语言的不足:

#!/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}."