Страницы PDF используют общие ресурсы, такие как шрифты, изображения и т. Д. При разделении документа общие ресурсы попадают в каждый полученный файл. Когда вы объединяете эти файлы, ресурсы могут не объединяться обратно (это зависит от того, как реализован инструмент слияния), в результате чего получается гораздо больший файл.
Вы могли использовать функцию расширения параметра удара
for i in ./*.pkg ; do mv "$i" "${i/-[0-9.]*.pkg/.pkg}" ; done
, Кавычки необходимы для имен файлов с пробелами.
лучше используйте sed
для этого, чего-то как:
find . -type f -name "*.pkg" |
sed -e 's/((.*)-[0-9.]*\.pkg)/\1 \2.pkg/g' |
while read nameA nameB; do
mv $nameA $nameB;
done
подсчет регулярного выражения оставляют как осуществление (как имеет дело с именами файлов, которые включают пробелы)
Это, кажется, работает, предполагая, что
, снимают изоляцию с .pkg, затем снимают изоляцию-..
for x in $(ls); do echo $x $(echo $x | sed 's/\.pkg//g' | sed 's/-.*//g').pkg; done
Если все файлы находятся в том же каталоге последовательность
ls |
sed -n 's/\(.*\)\(-[0-9.]*\.pkg\)/mv "\1\2" "\1.pkg"/p' |
sh
сделает Ваше задание. Команда sed создаст последовательность команд mv, которые можно затем передать по каналу в оболочку. Лучше первый показ конвейер без запаздывания | sh
чтобы проверить, что команда делает то, что Вы хотите.
Для рекурсивного вызова через несколько каталогов используют что-то как
find . -type f |
sed -n 's/\(.*\)\(-[0-9.]*\.pkg\)/mv "\1\2" "\1.pkg"/p' |
sh
Обратите внимание, что в sed последовательность группировки регулярного выражения является скобками, которым предшествует обратная косая черта, \(
и \)
, вместо одиночных скобок (
и )
.
Я сделаю что-то вроде этого:
for file in *.pkg ; do
mv $file $(echo $file | rev | cut -f2- -d- | rev).pkg
done
предполагаемый весь Ваш файл находятся в текущем каталоге. В противном случае попытайтесь использовать, находят, как рекомендуется выше Javier.
Править: Кроме того, эта версия не используют определенных для удара функций, как другие выше, который приводит Вас к большей мобильности.