На этот вопрос уже есть ответ здесь:
Я хочу разделить 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
Теперь мне нужен сценарий, который выполняет ту же работу, что и предыдущие команды.
Как насчет этого:
#!/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