On Thu, Jul 21, 2016 at 08:00:44AM -0400, bruce 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. > Two more possibilities (the short output lines were unchanged): # search for entire string, replace only txt $ sed '/foo(.txt.)/s,txt,/dir/txt,' tst.txt foo('/dir/txt') bar('txt') foo('bar') foo("/dir/txt") bar("txt") foo("bar") # capture unchanging parts as \1 and \2 using grouping \( & \) $ sed 's,\(foo(.\)txt\(.)\),\1/dir/txt\2,' tst.txt foo('/dir/txt') bar('txt') foo('bar') foo("/dir/txt") bar("txt") foo("bar") -- Jon H. LaBadie jonfu@xxxxxxxxxx -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://lists.fedoraproject.org/admin/lists/users@xxxxxxxxxxxxxxxxxxxxxxx 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