|
Search Forums:
|
|||||||
| Forums | Register | Forum Rules | Linux and Unix Links | Man Pages | Albums | FAQ | Users | Calendar | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Vi/sed placing an "r" when I ask for "\r"
I'm using SunOS 5.9 and the version of vi on this machine has several differences, compared to other machines I use, that don't produce the desired result. For example, if I open a text file in vi and then enter the following in command mode: Code:
%s/ /\r/g I'm expecting vi to replace all spaces with a carriage return. Instead, it replaces all spaces with an "r". I've tried using \r\n, \n, \n\r and I still get the same result. This seems to be prevalent on all Solaris/SunOS hosts I use. How do I determine the version of vi I am using? --version is not an option. When I determine the version how can I make the edits from within vi as described? |
| Sponsored Links | |
|
|
|
#4
|
||||
|
||||
|
The action you describe is what I would have expected actually. You need to enter a control character so press CTRL-V which allows entry of a control character, then press enter like this: Code:
:%s/ /<CTRL-V><Enter>/g Note when you press CTRL-V you will see a circumflex appear to indicate its waiting for the control character. When you press Enter you will see it change to ^M (which is actually 1 character, a control character). Try it, you'll see. I'm on Sun 5.8 by the way. Last edited by gary_w; 02-08-2012 at 10:28 AM.. |
| The Following User Says Thank You to gary_w For This Useful Post: | ||
MaindotC (02-08-2012) | ||
| Sponsored Links | |
|
|
#5
|
|||
|
|||
|
Nope - replaces all spaces with \\r
I did try this just now and thankfully I do have access to this editor but I was unable to achieve the desired result. If there's something I would try other than the sed commands I or kalpeer listed I'm not aware of it but I'll research further the differences between your suggestion and the usual vi I use. Quote:
|
| Sponsored Links | |
|
|
#6
|
||||
|
||||
|
Nothing rude about it! lol. That's how UNIX is designed to work. You need a way to tell vi to ignore the following key sequence as command, and read it as the character itself instead. The designers chose the CTRL-V sequence to do this, that's all. Here's a table that shows control characters for various keys like TAB and ESC, etc that may come in handy: ASCII Table - table of ASCII codes. You can enter control characters in the same way too. See what happens when you type this: Code:
$ echo "Hello<CTRL-V><TAB><CTRL-V><TAB>world" |
| Sponsored Links | |
|
|
#7
|
|||
|
|||
|
I have one other problem - the nbsp character (\255)...I realise to enter ctrl character mode I press CTRL + V, but what do I enter to represent the nbsp? I googled and can't find where it relates to the keyboard. Edit - actually I found out 255 is not nbsp - or at least my editor is returning ctrl + shift + space as \240. Edit2 - ok now I see that \255 is a type of hyphen...how do I remove them all other than going to the \255 and using the x command to erase it? Code:
[user@hostname]echo -e "\255" - ---------- Post updated 02-16-12 at 11:27 AM ---------- Previous update was 02-15-12 at 05:42 PM ---------- I got the answer sort of - I use the following in vi to remove the \255's: Code:
:%!tr -d '\255' Last edited by MaindotC; 02-15-2012 at 05:53 PM.. |
| Sponsored Links | ||
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| awk command to replace ";" with "|" and ""|" at diferent places in line of file | shis100 | Shell Programming and Scripting | 7 | 03-16-2011 07:59 AM |
| Make scipt except from "Y","y" and "yes" to take [Enter] as being "yes" | hakermania | Shell Programming and Scripting | 4 | 12-11-2010 09:24 AM |
| ps -ef | grep "string1" "string2" " "string3" | steve2216 | Shell Programming and Scripting | 11 | 09-03-2010 11:08 AM |
| Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`" | Lokesha | UNIX for Dummies Questions & Answers | 4 | 12-20-2007 12:52 AM |
|
|