|
Subject: Re: [xsl] Escaping special characters for *nix file path From: Liam R E Quin <liam@xxxxxx> Date: Sun, 29 Jul 2012 10:58:10 -0400 |
On Sun, 2012-07-29 at 15:58 +0200, Wolfgang Laun wrote:
> A relatively safe way would be to enclose the path name in apostrophes
> (') and escape all contained apostrophes and backslashes with a
> backslash.
It would be if it worked :-)
\ is not special inside '...' in the shell, and neither are ` or $
(in shell-speak, no interpolation happens and there is no escaping)
\ *is* special inside "..."
(this is the difference between the two forms of quote in fact)
so,
$ mkdir try
$ cd try
$ touch "a`date`b"
$ ls
aSun Jul 29 10:16:42 EDT 2012b
$ touch 'a`date`b
$ ls
a`date`b
aSun Jul 29 10:16:42 EDT 2012b
$ touch "c\`date\`d"
$ ls
a`date`b
aSun Jul 29 10:16:42 EDT 2012b
c`date`d
$
This is all about escaping from the shell, though. On Unix (and Linux
and OS X) a filename can contain any character except NUL (a zero byte)
or / (because that's the path separator).
If the resulting files are going to be accessed as URIs though, you also
have to avoid a ton of other characters, and \-escaping doesn't work -
you have to use uri-escape(), and in that case there's no need to mess
around with backslashes either.
But all this presupposes particular uses -- presumably XSLT is being
used to generate a shell script here.
Liam
--
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Co-author, 5th edition of "Beginning XML", Wrox, June 2012
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Escaping special characte, Wolfgang Laun | Thread | Re: [xsl] Escaping special characte, Wolfgang Laun |
| Re: [xsl] Escaping special characte, Wolfgang Laun | Date | [xsl] Exception thrown by OutputURI, Lighton Phiri |
| Month |