[problem]
You need to remove content from zip files.
Effectively unzip, remove the pattern and re-zip.
[/problem]
[solution]
A collection of shell commands, to perform the unzip, swap and rezip.
[/solution]
[example]
* First to find zips with those patterns in (substitute pattA and B with your patterns, on each of the commands below):
for na in *gz
do
[[ $(gzip -c -d $na | egrep -ic 'pattA|pattB') -ne 0 ]] && {
echo $na
}
done > /tmp/filelist.out
* Then to test removing the offending lines:
for na in $(</tmp/filelist.out)
do
gzip -c -d $na | egrep -iv 'pattA|pattB' |
gzip --best > /tmp/replace.gz
echo going to mv /tmp/replace.gz $na
ls -ld /tmp/replace.gz $na
done
* Now to the actual move:
for na in $(</tmp/filelist.out)
do
gzip -c -d $na | egrep -iv 'pattA|pattB' |
gzip --best > /tmp/replace.gz
mv /tmp/replace.gz $na
done
* Then a retest:
for na in $(</tmp/filelist.out)
do
gzip -c -d $na | egrep -i 'pattA|pattB' |
sed "s/^/$na: /"
done
[/example]
[reference]
[tags]gzip, sed, Unix Coding School[/tags]
[/reference]
If you have found my website useful, please consider buying me a coffee below 😉