Groups | Search | Server Info | Login | Register
Groups > comp.unix.shell > #1766
| From | Jens Schweikhardt <usenet@schweikhardt.net> |
|---|---|
| Newsgroups | comp.unix.shell, comp.unix.programmer, comp.programming.contests |
| Subject | Re: The First Pure Shell Contest (PUSH): relativepath |
| Date | 2011-08-21 10:43 +0000 |
| Message-ID | <9bc5q4FkltU1@mid.individual.net> (permalink) |
| References | <9b7kg7F3njU1@mid.individual.net> <slrnj5050s.gg9.stephane.chazelas@spam.is.invalid> |
Cross-posted to 3 groups.
In comp.programming.contests Stephane CHAZELAS <Stephane.CHAZELAS@free.fr> wrote:
# 2011-08-19, 17:23(+00), Jens Schweikhardt:
# [...]
#> Write a POSIX shell function named 'relativepath' which takes as
#> arguments two absolute canonicalized pathnames, and stores the relative
#> path from the first to the second in the variable "result" or "." when
#> the arguments are the same. Example: relativepath /foo/bar /foo/baz sets
#> result to "../baz".
# [...]
#
# In the not-answering-the-question category, what about:
#
# printf '%s\n' "$1//$2/"|sed -e:1 -e'$!{N;b1' -e} -e'
# s|/////*|///|;s|\(.*/\)\(.*/\)\1|\2|;:2
# s|^[^/]*/\(\(.*/\)*/\)|\1../|;t2
# s|^/||;s|/$||;s/^$/./'
Cool! Since semicolons are free, what about using them as pattern delimiters:
printf '%s\n' "$1//$2/"|sed -e:1 -e'$!{N;b1' -e} -e'
s;/////*;///;;s;\(.*/\)\(.*/\)\1;\2;;:2
s;^[^/]*/\(\(.*/\)*/\);\1../;;t2
s;^/;;;s;/$;;;s/^$/./'
Note to contestants: Not a valid entry due to sed, which cannot assumed
to be a builtin of the contest evaluation machine's shell :-)
Regards,
Jens
--
Jens Schweikhardt http://www.schweikhardt.net/
SIGSIG -- signature too long (core dumped)
Back to comp.unix.shell | Previous | Next — Previous in thread | Next in thread | Find similar
The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <schweikh@schweikhardt.net> - 2011-08-19 17:23 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-19 18:13 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 19:12 +0000
Re: The First Pure Shell Contest (PUSH): relativepath pk <pk@pk.invalid> - 2011-08-19 21:14 +0200
Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 19:29 +0000
Re: The First Pure Shell Contest (PUSH): relativepath pk <pk@pk.invalid> - 2011-08-19 21:37 +0200
Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 20:04 +0000
Re: The First Pure Shell Contest (PUSH): relativepath pk <pk@pk.invalid> - 2011-08-19 22:25 +0200
Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 21:08 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-19 19:58 +0100
Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-19 19:23 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-19 22:18 +0100
Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <Stephane.CHAZELAS@free.fr> - 2011-08-20 20:07 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Jens Schweikhardt <usenet@schweikhardt.net> - 2011-08-21 10:43 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-21 15:14 +0100
Re: The First Pure Shell Contest (PUSH): relativepath Janis Papanagnou <janis_papanagnou@hotmail.com> - 2011-08-21 18:28 +0300
Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-21 16:19 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-21 20:12 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-22 21:15 +0100
Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-23 18:23 +0000
Re: The First Pure Shell Contest (PUSH): relativepath Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-08-23 19:52 +0100
Re: The First Pure Shell Contest (PUSH): relativepath Stephane CHAZELAS <stephane_chazelas@yahoo.fr> - 2011-08-23 21:56 +0000
csiph-web