Показать сообщение отдельно
Старый 18.06.2007, 22:19     # 6
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от shuron Посмотреть сообщение
Было бы супер!!!
Пожалуйста.
Извини что так долго, совсем не до этого было...

Комментарии с настройками в коде. Думаю что там все понятно. Тестировалось небрежно, на 5 файлах, но работало нормально.

Для работы требуется zip, unzip, awk.
Еслим что будет не понятно - с радостью отвечу.

Код:
#!/bin/bash

#CaseSensitive!
EXT=jar
#Расширение, с которым оставлять оригинал. Если оставить пустое, то файлы будут перезаписываться.
BAK_EXT=bak
TMP_DIR=wirking_dir.tmp

FULL_LOG=LOG.LOG
#Uncomment this line, if log not needed
#FULL_LOG=/dev/null

echo Starting at `date` > $FULL_LOG

	if [ ! "$1" ]; then
	echo 'Необходимо передать директорию для обработки первым параметром!'
	exit 1
	fi
DIR=$1

	if [ ! -d $TMP_DIR ]; then
	mkdir $TMP_DIR
	fi


	for File in $DIR/*.$EXT
	do
	echo ======================================
	echo Обрабатывается $File | tee -a $FULL_LOG
	( unzip -x $File -d $TMP_DIR 2>&1) >>$FULL_LOG
	#"Для чисчтоты ещё не плохо бы в каждом jare стереть всё содержимое каталога META-INF кроме MANIFEST.FM."
	#Do it
	ls -1 $TMP_DIR/META-INF | grep -v 'MANIFEST.MF' | xargs -r rm >> $FULL_LOG 2>>$FULL_LOG
	#"Так вот чтобы убрать сигнатуру такого jar-фала то по идее достаточно стереть нижнию часть содержимого файла manifest.fm оставив верхнюю (начиная с кажем с первой пропущеной строки и до кноца)."
	#Do it
	awk 'BEGIN {RS="\r?\n\r?\n.+"} { print $0}' $TMP_DIR/META-INF/MANIFEST.MF > $TMP_DIR/META-INF/MANIFEST.MF.tmp
	mv $TMP_DIR/META-INF/MANIFEST.MF.tmp $TMP_DIR/META-INF/MANIFEST.MF
	#Пакуем обратно
		if [ "$BAK_EXT" ]; then
		mv $File $File.$BAK_EXT
		else
		rm $File
		fi
	CUR_PWD=`pwd`
	cd $TMP_DIR
	( zip -9r `basename $File` ./* 2>&1 ) >>$FULL_LOG
	#	>> $FULL_LOG 2>>$FULL_LOG
	cd $CUR_PWD
	mv $TMP_DIR/`basename $File` $File
	echo -e "\tDONE"	| tee -a $FULL_LOG
	rm -rf $TMP_DIR/*
	done

rmdir $TMP_DIR
P.S. Очень все-таки надеюсь что правда относительно честных намерений, а не чьи-то копирайты у ворованного контента снимаете.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума