On Thu, Jul 21, 2016 at 3:00 PM, bruce <badoug...@gmail.com> wrote:
> Hey guys..
>
> Sed question.. should be simple, but after stack/net searches, lots or
> trials.. can't seem to get it..
>
> I've got a case
>
> foo('txt')
> foo("txt")
>
> I'd like to have
>
> foo('/dir1/txt')
> foo("/dir1/txt")
>
> Now. I do a simple sed search/replace if it just focuses on the txt, but
> crafting a sed that uses the entire input as a search due to the parens '()'
> is a bit painful!  Doing the sed using the \( for the ( wasn't quite
> successful!
>
> for just the txt..
>
> sed -i 's/'txt'/'dir1/txt'/' *files.dat
> sed -i 's/"txt"/"dir1/txt"/' *files.dat
>
> these work...
>
> any thoughts on how to handle the parens would be cool!
>
> just irks me that I couldn't see what I missed.
>
> thanks!

Try like this:

 cat /tmp/1.txt
foo('/dir1/txt')

 sed -e 's#'txt'#'dir1/txt'#' /tmp/1.txt
foo('/dir1/dir1/txt')

Or:
sed -e  's/'txt'/'dir1\\/txt'/' /tmp/1.txt

You need to escape the / in the replacement string.
--
users mailing list
users@lists.fedoraproject.org
To unsubscribe or change subscription options:
https://lists.fedoraproject.org/admin/lists/users@lists.fedoraproject.org
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org

Reply via email to