[Csnd] OT sed command suggestions
Date | 2011-04-30 15:28 |
From | peiman khosravi |
Subject | [Csnd] OT sed command suggestions |
Hello, I am using a csh script (see below) to replace "[space]" with actual spaces in file names. I am using "sed" for this and it works for strings that do not have the pattern consecutively (e.g. "[space][space]"). But when they do, sed is only replacing the matched pattern once so the resulting names do not have double spaces as they should. For instance "hello[space][space]hello.aif" returns "hello hello.aif" as opposed to the expected "hello hello.aif". Funny enough it works with this: "hello[space]hello[space].aif". I am just sending this here on the off-chance that someone will have a quick solution, otherwise I will take it to a relevant forum. Apologies in advance for the off topic message. Anyhow, the connection is that I am building a MaxMSP fronted for some csound utilities and max does not pass spaces in a string to the shell (a nightmare) so I am having to find this workaround by first replacing the spaces with a pattern and parsing the result in the script. Best, Peiman set path = `echo "$argv[1]" | sed s/"\[space]"/' '/g` Send bugs reports to the Sourceforge bug tracker https://sourceforge.net/tracker/?group_id=81968&atid=564599 Discussions of bugs and features can be posted here To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" |
Date | 2011-04-30 15:39 |
From | Steven Yi |
Subject | Re: [Csnd] OT sed command suggestions |
What is your sed regular expression? Are you using /g to do find/replace of all? (I think that's the thing to do, if I remember correctly) On Sat, Apr 30, 2011 at 10:28 AM, peiman khosravi |
Date | 2011-04-30 15:43 |
From | peiman khosravi |
Subject | Re: [Csnd] OT sed command suggestions |
On 30/04/2011 15:39, Steven Yi wrote: > What is your sed regular expression? Are you using /g to do > find/replace of all? (I think that's the thing to do, if I remember > correctly) Thanks Steven, yes, this is the line from my script, which uses /g. set path = `echo "$argv[1]" | sed s/"\[space]"/' '/g` Best, Peiman Send bugs reports to the Sourceforge bug tracker https://sourceforge.net/tracker/?group_id=81968&atid=564599 Discussions of bugs and features can be posted here To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" |
Date | 2011-04-30 16:02 |
From | Steven Yi |
Subject | Re: [Csnd] OT sed command suggestions |
Hi Peiman, I tried this on the commandline: echo "hello[space][space]hello.aif" | sed s/"\[space]"/' '/g and got the expected result of: hello hello.aif (two spaces) Maybe try echoing $argv[1] to make sure it came in with two [space]'s and somehow didn't get filtered by something Max was doing? steven On Sat, Apr 30, 2011 at 10:43 AM, peiman khosravi |
Date | 2011-04-30 16:32 |
From | peiman khosravi |
Subject | Re: [Csnd] OT sed command suggestions |
Thanks very much Steven, I am going to do some debugging straight away. Something is not right :-) Best, Peiman On 30/04/2011 16:02, Steven Yi wrote: > Hi Peiman, > > I tried this on the commandline: > > echo "hello[space][space]hello.aif" | sed s/"\[space]"/' '/g > > and got the expected result of: > > hello hello.aif > > (two spaces) > > Maybe try echoing $argv[1] to make sure it came in with two [space]'s > and somehow didn't get filtered by something Max was doing? > > steven > > On Sat, Apr 30, 2011 at 10:43 AM, peiman khosravi > |
Date | 2011-04-30 16:44 |
From | peiman khosravi |
Subject | Re: [Csnd] OT sed command suggestions |
OK as you say it works directly in the terminal, but not when running as part of the script (below). #!/bin/tcsh set path = `echo "untitl[space][space]ed[space]folder" | sed s/"\[space]"/' '/g` echo "$path" The result is: bash-3.2$ ./extractBatch untitl ed folder (one space!) On 30/04/2011 16:02, Steven Yi wrote: > Hi Peiman, > > I tried this on the commandline: > > echo "hello[space][space]hello.aif" | sed s/"\[space]"/' '/g > > and got the expected result of: > > hello hello.aif > > (two spaces) > > Maybe try echoing $argv[1] to make sure it came in with two [space]'s > and somehow didn't get filtered by something Max was doing? > > steven > > On Sat, Apr 30, 2011 at 10:43 AM, peiman khosravi > |
Date | 2011-04-30 17:59 |
From | jpff@cs.bath.ac.uk |
Subject | Re: [Csnd] OT sed command suggestions |
>From tcsh manula Command substitution Command substitution is indicated by a command enclosed in ``'. The output from such a command is broken into separate words at blanks, tabs and newlines, and null words are discarded. The output is vari- able and command substituted and put in place of the original string. Command substitutions inside double quotes (`"') retain blanks and tabs; only newlines force new words. The single final newline does not force a new word in any case. It is thus possible for a command sub- stitution to yield only part of a word, even if the command outputs a complete line. By default, the shell since version 6.12 replaces all newline and car- riage return characters in the command by spaces. If this is switched off by unsetting csubstnonl, newlines separate commands as usual. Send bugs reports to the Sourceforge bug tracker https://sourceforge.net/tracker/?group_id=81968&atid=564599 Discussions of bugs and features can be posted here To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" |
Date | 2011-04-30 18:24 |
From | peiman khosravi |
Subject | Re: [Csnd] OT sed command suggestions |
I knew I must have missed something. Thank you very much. That explains the issue, now I will look for a fix :-) Best, Peiman On 30/04/2011 17:59, jpff@cs.bath.ac.uk wrote: > From tcsh manula > > Command substitution > Command substitution is indicated by a command enclosed in ``'. > The > output from such a command is broken into separate words at > blanks, > tabs and newlines, and null words are discarded. The output is > vari- > able and command substituted and put in place of the original string. > > Command substitutions inside double quotes (`"') retain blanks > and > tabs; only newlines force new words. The single final newline does > not > force a new word in any case. It is thus possible for a command > sub- > stitution to yield only part of a word, even if the command > outputs a > complete line. > > By default, the shell since version 6.12 replaces all newline and > car- > riage return characters in the command by spaces. If this is > switched > off by unsetting csubstnonl, newlines separate commands as usual. > > > > > > > > Send bugs reports to the Sourceforge bug tracker > https://sourceforge.net/tracker/?group_id=81968&atid=564599 > Discussions of bugs and features can be posted here > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" > Send bugs reports to the Sourceforge bug tracker https://sourceforge.net/tracker/?group_id=81968&atid=564599 Discussions of bugs and features can be posted here To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" |
Date | 2011-04-30 18:28 |
From | peiman khosravi |
Subject | Re: [Csnd] OT sed command suggestions |
Well, according to this putting the whole thing inside double quotes should fix the issue, but that doesn't even work. Mhhh more fiddling! P On 30/04/2011 17:59, jpff@cs.bath.ac.uk wrote: > From tcsh manula > > Command substitution > Command substitution is indicated by a command enclosed in ``'. > The > output from such a command is broken into separate words at > blanks, > tabs and newlines, and null words are discarded. The output is > vari- > able and command substituted and put in place of the original string. > > Command substitutions inside double quotes (`"') retain blanks > and > tabs; only newlines force new words. The single final newline does > not > force a new word in any case. It is thus possible for a command > sub- > stitution to yield only part of a word, even if the command > outputs a > complete line. > > By default, the shell since version 6.12 replaces all newline and > car- > riage return characters in the command by spaces. If this is > switched > off by unsetting csubstnonl, newlines separate commands as usual. > > > > > > > > Send bugs reports to the Sourceforge bug tracker > https://sourceforge.net/tracker/?group_id=81968&atid=564599 > Discussions of bugs and features can be posted here > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" > Send bugs reports to the Sourceforge bug tracker https://sourceforge.net/tracker/?group_id=81968&atid=564599 Discussions of bugs and features can be posted here To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" |
Date | 2011-04-30 18:31 |
From | peiman khosravi |
Subject | Re: [Csnd] OT sed command suggestions |
Awesome, thanks John! Just replaced [] with {} and put the whole thing in double quotes. set path = "`echo "$argv[1]" | sed s/{space}/' '/g`" Best, Peiman On 30/04/2011 17:59, jpff@cs.bath.ac.uk wrote: > From tcsh manula > > Command substitution > Command substitution is indicated by a command enclosed in ``'. > The > output from such a command is broken into separate words at > blanks, > tabs and newlines, and null words are discarded. The output is > vari- > able and command substituted and put in place of the original string. > > Command substitutions inside double quotes (`"') retain blanks > and > tabs; only newlines force new words. The single final newline does > not > force a new word in any case. It is thus possible for a command > sub- > stitution to yield only part of a word, even if the command > outputs a > complete line. > > By default, the shell since version 6.12 replaces all newline and > car- > riage return characters in the command by spaces. If this is > switched > off by unsetting csubstnonl, newlines separate commands as usual. > > > > > > > > Send bugs reports to the Sourceforge bug tracker > https://sourceforge.net/tracker/?group_id=81968&atid=564599 > Discussions of bugs and features can be posted here > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" > Send bugs reports to the Sourceforge bug tracker https://sourceforge.net/tracker/?group_id=81968&atid=564599 Discussions of bugs and features can be posted here To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound" |