Хочу написать баш-скрипт, который проверяет бинарные файлы и если в конце его есть нужна строка, то отрезает n-ое количество байт от файла. Если с последним в целом понятно и есть truncate, то вот с первым проблемка. Сначала хотел через strings вытащить все строки и проверить последнюю, но проблема в том, что данная строка может быть и в середине файла. Единственный костыль придумал через stat и dd отрезать начало файла и потом грепать его:
#!/bin/bash
declare -i truncsize=0
filesize=$(stat -c%s "$1")
truncsize="$filesize - 10"
dd if="$1" of=/tmp/out.qwe skip=$truncsize bs=1
if grep -q "teststring" /tmp/out.qwe;
then
truncate -s -10 "$1"
else
echo NORM
fi
Интересует, если какой-нибудь более короткий способ проверить конец бинарного файла?