zsh-users
 help / color / mirror / code / Atom feed
From: Meino Christian Cramer <Meino.Cramer@gmx.de>
To: schaefer@brasslantern.com
Cc: zsh-users@sunsite.dk
Subject: Re: ${i:r}-question
Date: Sun, 28 Aug 2005 02:55:28 +0200 (CEST)	[thread overview]
Message-ID: <20050828.025528.59463603.Meino.Cramer@gmx.de> (raw)
In-Reply-To: <1050827204440.ZM11639@candle.brasslantern.com>

From: Bart Schaefer <schaefer@brasslantern.com>
Subject: Re: ${i:r}-question
Date: Sat, 27 Aug 2005 20:44:40 +0000

Hi Bart , :)

 thanks for your reply  ! :O)

 To "unbroke" my broken English a little bit more I will try to tell a
 little more of my (a little longish) "archiver/compressor"-story.

 p7zip is a data compressor, which has a compression ratio even better
 than bzip2 (!). Since "space" on my harddisk is a seldom guest, I was
 happy, that Oskar, the author of atool has implemented the "arepack"
 tool in addition to all the other very handy tools of his atool suit.

 In opposite to bzip2/gzip p7zip is able to build archives of more
 than one file. Since it originates in the Windows world, it does not
 reconstruct certain attributes like gid and uid of the files of such
 an p7zip-only-many-files archive. The author of p7zip recommends to
 make a tar archive first and then compress it with p7zip for backup
 purposes on Unix/Linux (which I use).

 The format of the commandline to feed into arepack is as follows:

	 arepack -F<new target archive form> -e <old archive/s>

 For *.tar.gz archives it would be:

 	 arepack -F.tar.7z -e zsh-4.2.5.tar.gz

 but if you get a single file compressed with gzip for example, it
 would be:
 
 	 arepack -F.7z -e zsh-doc-4.2.5.gz

 Therefore I was looking for a zsh script expression -- without the
 need to use "big brothers" like sed, perl etc -- which simply gives
 me "the whole extension string" in one turn, without to destinguish
 between the 2-extension form like ".tar.gz" from the 1-extension-form
 like ".gz" in the script code itsself in beforehand. Additionally it
 would be nice, if the code would give me the information, whether it
 has found a 2- or an 1-extension form. Or shorter:

                             Output:

 Input:                      +------> complete extension
                             |
 <filename> -----> script ---+
                             |
                             +------> info whether it is an 1- or
                                      2-extension form

 The code fragment

	 ${${(M)afile%%(.tar|).(7z|bz2|gz)}#.}	

 would fail on files, which are of the pattern

	 zsh-4.2.5-doc.bz2  (only one extension) 

 or? (and all files, which are no Makefiles.... ;O)

 If I would have such an code fragment as desribed above, I would
 simply replace any ".tgz" string in a ".tar,gz" string afterwards
 (.tbz -> .tar.bz2 accordingly) and I would check for a ".tgz" string
 and then generate a ".tar.7z" string for the "-F<new format> part of
 the commandline to be fed into arepack.

 Dont hesitate to mail and ask again, Bart, if something is unclear --
 English isn't my mother's tongue...sorry.

 Have a nice weekend and thank you very much for your help and
 patience with my English in advance ! :)
 Meino

> On Aug 26,  6:32pm, Meino Christian Cramer wrote:
> } 
> }  I am currently wrting a little shell script, which encapsulates the
> }  new "arepack" addition of atool-0.31.0 (nice tool! use it! :O))).
> 
> I'm glad you answered zzapper's question because I was scratching my
> head over why it made a difference if the bzip'd file was also tar'd.
>  
> }  I am wondering, whether it would possible to strip off more than one
> }  "instance" of extension ("tar.bz2" instead of "bz2") from "$afile"
> 
> You mean e.g. ${${(M)afile%%(.tar|).(7z|bz2|gz)}#.} except that you
> don't want to have to enumerate (7z|bz2|gz)?  Otherwise I'm not clear
> on the question.
> 
> Incidentally if it's important to know about the "tar" part, then have
> you considered what to do with e.g. ".tgz" files?
> 


  reply	other threads:[~2005-08-28  0:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-26 16:32 ${i:r}-question Meino Christian Cramer
2005-08-27 17:11 ` ${i:r}-question zzapper
2005-08-27 17:41   ` ${i:r}-question Meino Christian Cramer
2005-08-27 20:44 ` ${i:r}-question Bart Schaefer
2005-08-28  0:55   ` Meino Christian Cramer [this message]
2005-08-28  3:07     ` ${i:r}-question Bart Schaefer
2005-08-28  5:12       ` ${i:r}-question Meino Christian Cramer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050828.025528.59463603.Meino.Cramer@gmx.de \
    --to=meino.cramer@gmx.de \
    --cc=schaefer@brasslantern.com \
    --cc=zsh-users@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).