Linux 将文件拆分到新文件夹中
我正在写我的第一个剧本,所以请原谅我初学者的错误。我一直在寻找所有的堆栈溢出,并没有找到任何帮助我解决这个问题 该脚本将使用WinSCP访问Raspberry Pi中的文件夹,并分割一个变得过大的文件。然后,它将再次使用WinSCP将子文件复制到桌面。我们知道如何分割文件以及如何将内容移动到WinSCP,但由于我们无法控制子文件名,因此我们认为将它们存储在文件夹中并将其移动更有意义 这就是我迄今为止所做的:Linux 将文件拆分到新文件夹中,linux,shell,split,Linux,Shell,Split,我正在写我的第一个剧本,所以请原谅我初学者的错误。我一直在寻找所有的堆栈溢出,并没有找到任何帮助我解决这个问题 该脚本将使用WinSCP访问Raspberry Pi中的文件夹,并分割一个变得过大的文件。然后,它将再次使用WinSCP将子文件复制到桌面。我们知道如何分割文件以及如何将内容移动到WinSCP,但由于我们无法控制子文件名,因此我们认为将它们存储在文件夹中并将其移动更有意义 这就是我迄今为止所做的: #!/bin/bash # Data Collector Script mkdir $o
#!/bin/bash
# Data Collector Script
mkdir $output
mv split -l 20000 helloworld.txt output //This is the line where I get stuck
有没有一种方法可以直接将文件拆分为输出文件?我会手动移动它们,但文件名是随机的 试试这个:
split -l 20000 helloworld.txt output/x
参考资料:@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}."
x代表什么?我查看了您提供的参考,不明白它来自何处。
output/x
是所创建文件的前缀。因此,这些文件将被命名为output/xaa
,output/xab
,output/xac
,等等。只要它开始output/
,就可以随意更改为任何方便的值。