[Solved] Problem - question for command inside sed.
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I think the OP is trying to use "&" on the RHS the same way that "\&" is used in AWK, to represent the match on the LHS.
For this, I would try: put the whole LHS into a \(...\) and then represent it with "\1" on the RHS. However, I'm still not sure whether or not the stuff represented by \1 will be passed into that $(subshell) as you expect-- but `xargs` could solve this, as well as probably other ways.
Well there's more of a problem here, at least on my machine: I tried echoing just the input string, through the `iconv` command, and it doesn't work for me, so if OP's in the same boat, the sed is never going to work.
When I do the echo of the string through `iconv` I get:
Code:
one two four
I don't know if this is something to do with my locale or what...
In GNU sed the 'e' command can execute commands in the pattern space.
For example
Code:
echo "2.2+3.3" | sed "s/.*/ echo '&'|bc /e"
5.5
echo "one two" | sed -r "s/(.*) (.*)/ echo '\2 \1'|rev /e"
eno owt
The s command creates a line of shell code in the pattern space which is then executed by the e command.
When the code is executed it is replaced in the pattern space by its output.
The 'e' command uses the default shell, /bin/sh, which is often linked to /bin/bash, but in Ubuntu it's now linked to /bin/dash.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.