带有 split 和 cat 命令的脚本

带有 split 和 cat 命令的脚本

我想将 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

相关内容