Sponsored Content
Top Forums Shell Programming and Scripting sed inside sed for replacing string Post 302545363 by linuxadmin on Monday 8th of August 2011 06:58:45 AM
Old 08-08-2011
sed inside sed for replacing string

My need is :
Want to change
docBase="/something/something/something"
to
docBase="/only/this/path/for/all/files"

I have some (about 250 files)xml files.

Code:
In FileOne it contains
<Context path="/PPP" displayName="PPP" docBase="/home/me/documents" reloadable="true" crossContext="true">
In File Two it contains
<Context path="/PPP" displayName="PPP" docBase="/usr/share/somethingelse" reloadable="true" crossContext="true">

etc..

I extracted it by using:
Code:
cat *.xml | awk /"Context path"/ | awk -F"docBase=" '{print $2}' | awk '{print $1}' | sed 's/\//\\\//g' | awk 'sub(".$", "")' | awk 'sub("^", "")'
Output:

/home/me/documents
/usr/share/somethingelse


Then I changed code to get :
cat *.xml | awk /"Context path"/ | awk -F"docBase=" '{print $2}' | awk '{print $1}' | sed 's/\//\\\//g' | awk 'sub(".$", "")' | awk 'sub("^", "")'
Output:

\/home\/me\/documents
\/usr\/share\/somethingelse


Now i Found all the strings to be replaced.

And now i am going to Replace all those by my string.
Code:
sed -ie 's/
`cat *.xml | awk /"Context path"/ | awk -F"docBase=" '{print $2}' | awk '{print $1}' | sed 's/\//\\\//g' | awk 'sub(".$", "")' | awk 'sub("^.", "")'`
/\/only\/this\/path\/for\/all\/files/g' *.xml

It throws an error
bash: syntax error near unexpected token `('

What mistake i did..??

OR

Is there any other way to do the same ??


I found https://www.unix.com/shell-programmin...using-sed.html already. But little confusion..
.

Last edited by linuxadmin; 08-08-2011 at 08:01 AM.. Reason: Found another answer already
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help needed - Replacing all date & time occurrences in a file with a string using Sed

Hi, I am new to using Sed. I have a file containg lines like the following: INFORM----Test.pc:168:10/11/05 12:34:26 > some text goes here.. TRACE-----Test.pc:197:10/11/05 12:34:26 > some text goes here.. My requirement is to replace 10/11/05 12:34:26 with a string <RUNDATE> (including <... (4 Replies)
Discussion started by: Hema_M
4 Replies

2. Shell Programming and Scripting

Need help in sed command ( Replacing a pattern inside a file with a variable value )

Hello, The following sed command is giving error sed: -e expression #1, char 13: unknown option to `s' The sed command is echo "//-----" | sed "s/\/\/---*/$parChk/g" where parChk="//---ee-" How can i print the variable value from sed command ? And is it possible to replace a... (2 Replies)
Discussion started by: frozensmilz
2 Replies

3. Shell Programming and Scripting

error while replacing a string by new line character in sed

hi, when i am doing the following things getting error Can anyone please suggest i have a file where there is a line like the following branch=dev sdf dev jin kilii fin kale boyle dev james dev i want to search the existance of dev in the above line. cat "$file" | sed -n... (8 Replies)
Discussion started by: millan
8 Replies

4. Shell Programming and Scripting

problem with sed while replacing a string with another

Hi, I have a line something like this sys,systematic,system I want to replace only the word system with HI I used sed for this as below echo sys,systematic,system | sed 's/system/HI/' but I got output as sys,HIatic,system I wanted output as sys,systematic,HI Please tell me... (9 Replies)
Discussion started by: friendyboy
9 Replies

5. Shell Programming and Scripting

Appending string (charachters inside the line) to a fixed width file using awk or sed

Source File: abcdefghijklmnop01qrstuvwxyz abcdefghijklmnop02qrstuvwxyz abcdefghijklmnop03qrstuvwxyz abcdefghijklmnop04qrstuvwxyz abcdefghijklmnop05qrstuvwxyz Whatever characters are in 17-18 on each line of the file, it should be concatenated to the same line at the character number... (6 Replies)
Discussion started by: tamahomekarasu
6 Replies

6. Shell Programming and Scripting

How to use sed to replace the a string in the same file using sed?

How do i replace a string using sed into the same file without creating a intermediate file? (7 Replies)
Discussion started by: gomes1333
7 Replies

7. Shell Programming and Scripting

help - sed - insert space between string of form XxxAxxBcx, without replacing the pattern

If the string is of the pattern XxxXyzAbc... The expected out put from sed has to be Xxx Xyz Abc ... eg: if the string is QcfEfQfs, then the expected output is Qcf Ef Efs. If i try to substitute the pattern with space then the sed will replace the character or pattern with space,... (1 Reply)
Discussion started by: frozensmilz
1 Replies

8. Shell Programming and Scripting

sed inside sed

hey guys, I'm going to make a sed file out of a list of words words.dat: 802.11a 802.11b 802.11g 802.11n my command: awk '{print $0,"/spEC/g"}' words.dat | awk '{print "s/"$0}' current output s/802.11a /spEC/g s/802.11b /spEC/g s/802.11g /spEC/g s/802.11n /spEC/g s/Player... (5 Replies)
Discussion started by: Johanni
5 Replies

9. Shell Programming and Scripting

sed not replacing

Data not replacing using sed,please check below. Replace_value=$$dbconn_target Search_value=$$dbcon_source   sed -e s/\${Search_value}/\${Replace_value}/g intrepid_sps_val.parm (2 Replies)
Discussion started by: katakamvivek
2 Replies

10. UNIX for Beginners Questions & Answers

sed inside the awk script to replace a string in the array

The requirement is i need to find an array value matching with pattern {5:{ , replace that with 5: and reassign that to same array index and print it. I write something like below and the issue is sed command is not working. If i replace " with "`" the script gives syntax error.how can i... (8 Replies)
Discussion started by: bhagya123
8 Replies
SHTOOL-INSTALL.TMP(1)					      GNU Portable Shell Tool					     SHTOOL-INSTALL.TMP(1)

NAME
shtool-install - GNU shtool install(1) command SYNOPSIS
shtool install [-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy] [-C|--compare-copy] [-s|--strip] [-m|--mode mode] [-o|--owner owner] [-g|--group group] [-e|--exec sed-cmd] file [file ...] path DESCRIPTION
This command installs a one or more files to a given target path providing all important options of the BSD install(1) command. The trick is that the functionality is provided in a portable way. OPTIONS
The following command line options are available. -v, --verbose Display some processing information. -t, --trace Enable the output of the essential shell commands which are executed. -d, --mkdir To maximize BSD compatiblity, the BSD "shtool "install -d"" usage is internally mapped to the "shtool "mkdir -f -p -m 755"" command. -c, --copy Copy the file to the target path. Default is to move. -C, --compare-copy Same as -c except if the destination file already exists and is identical to the source file, no installation is done and the target remains untouched. -s, --strip This option strips program executables during the installation, see strip(1). Default is to install verbatim. -m, --mode mode The file mode applied to the target, see chmod(1). Setting mode to ""-"" skips this step and leaves the operating system default which is usually based on umask(1). Some file modes require superuser privileges to be set. Default is 0755. -o, --owner owner The file owner name or id applied to the target, see chown(1). This option requires superuser privileges to execute. Default is to skip this step and leave the operating system default which is usually based on the executing uid or the parent setuid directory. -g, --group group The file group name or id applied to the target, see chgrp(1). This option requires superuser privileges to execute to the fullest extend, otherwise the choice of group is limited on most operating systems. Default is to skip this step and leave the operating system default which is usually based on the executing gid or the parent setgid directory. -e, --exec sed-cmd This option can be used one or multiple times to apply one or more sed(1) commands to the file contents during installation. EXAMPLE
# Makefile install: : shtool install -c -s -m 4755 foo $(bindir)/ shtool install -c -m 644 foo.man $(mandir)/man1/foo.1 shtool install -c -m 644 -e "s/@p@/$prefix/g" foo.conf $(etcdir)/ HISTORY
The GNU shtool install command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 1997 for GNU shtool. It was prompted by portability issues in the installation procedures of OSSP libraries. SEE ALSO
shtool(1), umask(1), chmod(1), chown(1), chgrp(1), strip(1), sed(1). 18-Jul-2008 shtool 2.0.8 SHTOOL-INSTALL.TMP(1)
All times are GMT -4. The time now is 02:34 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy