What is wrong with: echo $PATH | sed s/:/\\n/g


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers What is wrong with: echo $PATH | sed s/:/\\n/g
# 1  
Old 07-16-2013
What is wrong with: echo $PATH | sed s/:/\\n/g

Hello all!


I am on Mac (10.8.4) and my shell tcsh (man says version: Astron 6.17.00). Just to precise my tcsh:

Code:
echo $LC_CTYPE
UTF-8

I want to replace all ':' with a new line, to get all paths on one line. I don't find a way to make my shell accept the "\n"

My start was:

Code:
echo $PATH | sed s/:/\n/g

And I tried every possible variation of \n: \\n - "\n" - "\\n" or with \r. The result is always the : colon disappears but the replace is sometimes nothing or a literal "n" ...

Sorry for this dumb question; but the forum is for Dummies, isn't it?


marek

ps: in bash I get the same results
# 2  
Old 07-16-2013
Put the sed-script in quotes. I do not have tcsh at hand but in bash:
Code:
$ echo "a:b:c" |sed s/:/\n/g
anbnc
$ echo "a:b:c" |sed 's/:/\n/g'
a
b
c


Last edited by cero; 07-16-2013 at 08:48 AM..
# 3  
Old 07-16-2013
Code:
echo $PATH | awk -F: '{for(i=1; i<=NF; i++) {print $(i) } }'

Try that. I don't have tcsh, but this works correctly in bash.
# 4  
Old 07-16-2013
try hitting actual enter in sed for new line.

Code:
 
sed 's/:/\
/g


Last edited by vidyadhar85; 07-16-2013 at 09:16 AM..
# 5  
Old 07-16-2013
Oh thank you all! This was really a quick help!

Not working:

Code:
echo $PATH | sed 's/:/\n/g'
echo $PATH | sed 's/:/"\n"/g'
echo $PATH | sed 's/:/\\n/g'
echo $PATH | sed 's/:/"\\n"/g'
echo $PATH | sed "s/:/\n/g"
echo $PATH | sed "s/:/\\n/g"

hmm something wrong with my shell ...

Code:
echo $PATH | awk -F: '{for(i=1; i<=NF; i++) {print $(i) } }'

This is working perfectly; only problem: I have no idea how awk is working :-)

And the trick with a line enter is not working either:

Code:
echo $PATH | sed 's/:/
Unmatched '.

Thank you all for your help!

marek
# 6  
Old 07-16-2013
Sorry missed a backslash Smilie

Code:
 
echo $PATH | sed 's/:/\
/g'

# 7  
Old 07-16-2013
Thank you vidyadhar85

This is working in my shell:

Code:
echo $PATH | sed 's/:/ /g'

This replaces all colons with a space. Now lets try with a tab:

Code:
echo $PATH | sed 's/:/\t/g'
echo $PATH | sed 's/:/\\t/g'
echo $PATH | sed "s/:/\\t/g"
echo $PATH | sed "s/:/\t/g"

That means my shell has problems to interpret well the '\'

No lets try your suggestion:

Code:
echo $PATH | sed "s/:/\
? /g"
sed: 1: "s/:/
/g": unescaped newline inside substitute pattern

same for 's ... '

Code:
echo $PATH | sed 's/:/\                                                                                 /g'
sed: 1: "s/:/
/g": unescaped newline inside substitute pattern

So I have to live with an incomplete shell or learn awkward awk Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to find the wrong filename in a path and raise a trap for it

Example: I have server name A with an IP : 125.252.235.455 I have an username /password to login into this server under SSH connection In this server i have a path /apps/user/filename(Big.txt) Everyday we used to get the filename as Big.txt. I want a shell script to monitor this path... (4 Replies)
Discussion started by: ChandruBala73
4 Replies

2. Shell Programming and Scripting

What's wrong with my sed?

lyang0@lyang0-OptiPlex-755:~$ cat xx Settings for eth1: Supported ports: Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half... (11 Replies)
Discussion started by: yanglei_fage
11 Replies

3. Shell Programming and Scripting

What's wrong my sed?

$ cat file1 gcc-configure-sdk, gcc-configure-cross: Dont recomput libgcc: Remove unpackage unwind.h $ cat file2 fc94926 gcc-configure-sdk, gcc-configure-cross: Dont recomput f7ec6ea libgcc: Remove unpackage unwind.h f800988 balbababababa $ cat ./xx.sh #!/bin/bash while read... (10 Replies)
Discussion started by: yanglei_fage
10 Replies

4. UNIX for Dummies Questions & Answers

echo windows path

I have developed a script that transfers files from a UNIX machine to a Windows machine. Transferring the files is working perfectly, but my echo statements are displaying the destination (Windows) path names incorrectly. I understand that it is the "\" that is causing this, but is there anyway... (5 Replies)
Discussion started by: shammah77
5 Replies

5. Shell Programming and Scripting

Path a variable to sed that includes a path

Hi I'm trying to select text between two lines, I'm using sed to to this, but I need to pass variables to it. For example start="BEGIN /home/mavkoup/data" end="END" sed -n -e '/${start}/,/${end}/g' doesn't work. I've tried double quotes as well. I think there's a problem with the / in the... (4 Replies)
Discussion started by: mavkoup
4 Replies

6. AIX

Wrong path resolution

lspath out: Enabled hdisk14 fscsi0 Enabled hdisk15 fscsi0 Enabled hdisk14 fscsi0 Enabled hdisk15 fscsi0 Enabled hdisk0 fscsi1 Enabled hdisk1 fscsi1 Enabled hdisk2 fscsi1 Enabled hdisk3 fscsi1 Enabled hdisk4 fscsi1 Enabled hdisk5 fscsi1 Enabled hdisk6 fscsi1 Enabled hdisk7 ... (1 Reply)
Discussion started by: federico1636
1 Replies

7. Shell Programming and Scripting

SH echo$path

I need to run my shell script just by typing its name rather than doing sh <scrpit name>. I think its something to do with my profile and path. echo $path is giving me output as follows: sr/games /opt/gnome/bin /opt/kde3/bin /usr/bin/X11 /usr/local/bin /usr/bin /bin /usr/sbin /sbin... (3 Replies)
Discussion started by: 1MB
3 Replies

8. UNIX for Dummies Questions & Answers

echo $PATH doesn't match $HOME/.profile

This is on a Solaris 9 box, but I feel like a noob, so I am posting here. When I echo $PATH I get a lot of duplicate paths and extra stuff I don't need. What I want is just what I set up in my home dir under .profile My login shell=/bin/bash I checked the following and there are no path... (1 Reply)
Discussion started by: Veestan
1 Replies

9. UNIX for Dummies Questions & Answers

What's wrong with this line: if ${TEST:?} ; then echo empty; fi

I want to print "empty" if $TEST is empty. TEST= if ${TEST:?} ; then echo empty; fi But it doesn't work. What's wrong? (2 Replies)
Discussion started by: meili100
2 Replies

10. Shell Programming and Scripting

SED - How to return PATH from PATH/NAME

Hi, How can I get /usr/people/me/ from /usr/people/me/file.abc with sed? Thanks... (2 Replies)
Discussion started by: cybotic
2 Replies
Login or Register to Ask a Question