我想将 image.jpg 分割成几部分,然后再合并。我使用了以下命令:
split -b 1440 image.jpg # It divides it into 6 parts.
cat xaa.jpg xab.jpg xac.jpg xad.jpg xae.jpg xaf.jpg > new-image.jpg
现在我想要一个可以执行与前面的命令相同的工作的脚本。
答案1
这个怎么样:
#!/bin/bash
# test whether first argument exists and is a regular file, if not exit
[ -f "$1" ] || exit 1
# put 1440 bytes per output file
split -b 1440 "$1" "$1". &&
# merge files again
cat "$1".* >"${1%/*}/new-${1##*/}"
脚本以舍邦指定应与哪个程序一起运行,在本例中为/bin/bash
。首先,我们测试脚本的第一个参数是否为常规文件,如果不是,则退出。该split
命令将作为第一个参数给出的文件拆分,并创建输出文件,就像image.jpg.aa
文件 一样image.jpg
。只有split
成功退出后,该cat
命令才会使用bash
路径名扩展和参数扩展并将输出(即合并的文件)保存new-image.jpg
为文件image.jpg
。
将此脚本另存为例如splitmerge.bash
,使其可执行chmod +x splitmerge.bash
并运行它:
splitmerge.bash image.jpg
无论当前目录如何,所有输出文件都会在输入文件的目录中创建。如果要拆分的脚本和/或文件不位于当前目录中,请改用绝对路径,例如:
~/scripts/splitmerge.bash /home/thmk/test/image.jpg