Programming :: Replacing "slashes" With Back Slashes - Escape Character ?
Jan 7, 2011
Usually if I have to replace a character in a string I used the sed /s/ command. However, I am having some difficulty in doing the same thing when I have the following string in a variable in my shell script and I need to replace all the forward slashes ("/") to backslashes ("").
Lately I've been needing to delete new untracked files from my versioning system. Being in linux I use: hg status -un|xargs rm And it works nice, but when doing it in windows, hg status lists paths with backslash so that is where stuff goes wrong. So then I try: hg status -un|sed 's/\///g' ...but I get the error: sed: -e expression #1, char 8: unterminated `s' command
Then I try some ascii: `hg status -un|sed 's/o134/o57/g'`...that gets me: sed: -e expression #1, char 14: Trailing backslash And some scripting: hg status -un|sed 's/`echo `/`echo /`/g' ...that gets me: sed: -e expression #1, char 19: unknown option to `s'
I try all the last with any other characters and I get the expected output... so I'm completely lost. I have cygwin, of course, and I want to avoid using a file (that is what I've been doing).
And I'm trying to count the number of slashes in each line. I figured (with my limited knowledge of bash) that the best thing to use would be sed. So I ran this to print "not /": sed '!s////g' file # and eventually adding " | wc -m" to it. and I got the same result as if I ran cat, no modification at all:
I prefer to delete trailing slahes from pathes. Until now I used sed:
Code: $ myPath=/home/ladygaga/// $ echo "$myPath" | sed 's//*$//' /home/ladygaga I played around to accomplish the same with on-board means of bash without using sed, but for example this line only deletes one trailing slash: Code: $ myPath=/home/ladygaga/// $ echo ${myPath%/*} /home/ladygaga// Is there a way to delete trailing slahes with just on-board means of bash?
I have a back-end server behind a proxy machine. I would like non-SSL requests to the proxy to be rewritten into HTTPS requests to the back-end server, while not screwing up URLs with missing or misplaced trailing URL slashes. So far, on the proxy side, I have this in a virtual host for port 80:
But adding anything else to the URL fails, as the back-end server name gets stuck into the proxied [URL]... The rewrite log seems okay, I think. So I guess this is failing at the reverse proxy rule? Where am I going wrong?
I switch between Linux and Windows quite a lot and it's annoying the hell out of me that the Windows command prompt won't auto-complete directory paths when I press Tab if I use forward slashes like in Linux.For example, if I'm trying to navigate to a directory 'bin':
cd /path/to/dir/b <tab> - this won't auto-complete to 'bin' cd path odir <tab> - this will auto-complete.
Can I tell the Command Prompt to use forward slashes instead?
I wrote a hack script that outputs the following every so often: Code: 01/04/11 10:33:02: 97,1413,1447,2860 I must leave the data format the same --but I want a special number from it. In this case it's 97 and it's always going to be the first in the 4 columns of comma delimited items. I can extract with this:
Code: cat datafile | awk -F" " {'print $3'} | awk -F"," {'print $1'} But that's really sloppy. Can someone point out a better way of doing this (with awk) and tell me why?
How can I launch a program that requires a path and that path has spaces or special characters in them if (as far as I can tell) .desktop launchers doesn't seem to support escape characters?
I have recently upgraded to a VPS for the purpose of web hosting a group of sites related to my business.The reason for the upgrade was because we wish to run a shopping cart software which required greater memory for PHP and the VPS was the most economic solution. So, I have very basic linux knowledge but I am the definition of a newbie when it comes to going further than just scratching the surface of server configuration! I have successfully hosted our main site for a number of weeks but recently the postfix service stopped sending mail. I have Plesk Control Panel installed and postfix continually shows as not started even though in SSH the service status is definitely running - I have gone through the troubleshooting checklist here (http://www.postfix-book.com/debugging.html#d0e6) but can't get any further than section 2.1 as when running the host command (#host relay-test.mail-abuse.org), I get # -bash: host:command not found. I've gone further in the document but not found any issues...
When postfix was working properly (i.e. sending emails!), the plesk CP showed the service as started and all emails from the website were sending as normal. The mailq command is showing the messages stuck in the mailq and the maillog shows the following:- http://pastebin.centos.org/36446 - these are the latest few pages.To check the configuration and basic elements I have flushed the mailq (which shows a stack of messages waiting) and I have also spent a long time (2 weeks) reading up on the parameters that should be in main.cf and master.cf.I have found that when I 'telnet localhost 25' I get the following response...[root@s15397216]# telnet localhost 25Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.
I need to replace a value in a file. For example the content of data.txt file is: 1 1 23 2 1 42 3 2 52 4 2 62 5 1 77 6 1 88 7 2 99 8 1 100
Could I substitute 2 in second column with 3 using awk and or sed or other command so that the data will be change as follow? 1 1 23 2 1 42 3 3 52 4 3 62 5 1 77 6 1 88 7 3 99 8 1 100
Can anyone offer a code snippet to recursively go through directories and replace any single or double quotes quotes found in a filename with another character (e.g. "_").If any of the filenames contain a single quote or double quote, then replace it with an underscore.
Ok, so I find myself ripping audio CDs frequently, which I then lame to mp3's to put on my media player. I usually define the --ta and --tl (artist and album) ID3 tags and batch encode each album, but don't bother with the track tags as I'd have to do each one seperately.
So, I'm working on a script to do all this for me, extracting info from 'pwd' etc. to fill in the blanks for --ta, --tl and --tt (track name). All is working well, except that I can't get sed to pass on the "" character to lame to escape spaces.
Here's what I've got so far: (trouble spot is bolded - no need to pay attention to the rest of it)
Code:
All this does is pass a 'space' on to lame, which it takes as an invalid argument.
To encrypt the text, we take the word "python" and make it at least the same size as "welcome home" by repeating it as follows:
w e l c o m e h o m e p y t h o n p y t h o n Then, we convert each letter into its numerical ASCII value as follows: w e l c o m e h o m e = 119 101 108 099 111 109 101 032 104 111 109 101
[Code].....
And, finally, we convert the numbers back into their corresponding ASCII character:
I want to read a input from user and output something like 'inputcd', which has to escape all backslashes if using double-quote. For instance, the following code would work.
Just curious if any other way I could do it without specify all backslashes? Since that takes much efforts when the sequence is long.
I wrote the Automatik widget (you can find it at :http://kde-look.org/content/show.php...&PHPSESSID=caeTo improve it, I would like to add this one-line script into a text sensor :
top -b -n 1 | head -12 | tail -6 | sed '/top/d' | awk '{ printf "%-12.12s %-4s %-4s %-3s " , $12,$9,$10,$2}'
When you execute this in the command line it prints a bold green 'OK'. So far so good.
Now, I need to check the output of the script over time using the command watch. The problem then arises. watch seems to ignore the escape codes and just prints:
Code: [1;31;32mOK [00m
Is there any way to fix this?
If not, how can I check inside the script if it is being executed from a command? (watch in this case) So I can print without color for those cases.
i am trying to replace the last digit in the ip address(25) with 47 using following:Quote:echo 192.168.0.25|sed -r s/([0-9]*.[0-9]*.[0-9]*)/47/g'but not able so far, was wondering if you can help, so i can find my mistake.
I'm writing a script to replace some text that exists in about 50 .lex, .y, and .cc source code files, sometimes more than once in a file. Sometimes the text is in a multiline C comment, and other times it's within a multiline C string.
I use sed to grab the start and end of each line and wrap the new text in the old whitespace and/or quotes and Problem is, sed is changing the characters into a newline.
Is there a way to tell sed to not process escape sequences? I tried using several variations of
Code:
To no avail. Or could it be bash?
I would give up on the script and do it by hand, but this is something that I must do from time to time.
Here's the function which replaces the first occurrence found:
Code:
When $post is printed by echo, it shows the - but by the time the file is on disk, it becomes a newline. What should I do to ensure that it stays as the characters ?
I would like to replace 'xxxx' with 'yyyy' which is in a file xyz.csproj not sure of what 'xxxx' is, it can be 3055, 4056, 7089 etc. I know it always appears at line # 5 and at character 50.