Sponsored Content
Top Forums UNIX for Dummies Questions & Answers What is wrong with: echo $PATH | sed s/:/\\n/g Post 302833123 by alister on Tuesday 16th of July 2013 09:57:32 AM
Old 07-16-2013
Quote:
Originally Posted by marek
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 ...
No, There isn't. The problem is that you don't realize that most sed implementations do not support a \n escape sequence in the replacement text of a substitution command.

Quote:
Originally Posted by marek
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. As with \n, most sed implementations do not support a \t escape sequence in the replacement text of a substitution command.

Quote:
Originally Posted by marek
No lets try your suggestion:

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

This is due to how the shell treats a backslash at the end of a line within a double quoted string.

Quote:
Originally Posted by marek
same for 's ... '

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

You made a mistake, because within single quotes, a backslash is not special and if it immediately precedes the newline then sed will be happy.

You should spend some time with both your shell and sed documentation.

Regards,
Alister

P.S. Above, when I say "most", I mean all except GNU sed.
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
All times are GMT -4. The time now is 06:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy