Find and replace the path value in files, pattern is not full known.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and replace the path value in files, pattern is not full known.
# 1  
Old 06-04-2018
Find and replace the path value in files, pattern is not full known.

Hi,

I need to do find and replace, but the pattern is not full known.

for example,
my file has /proj/app-d1/sun or /data/site-d1/conf
here app-d1 and site-d1 is not constant. It may be different in different files. common part is /proj/xx/sun and /data/xxx/conf

i want to find where ever /proj/xxx/sun or /data/xxx/conf present and replace it with the path value i desire which i have constant values. please suggest how to do this.

Below is the one line which has the patterns to find, i want to replace it with differnt path. here cesite1-d1 is not constant, it may be different in other files.
Code:
if [ -f /data/cesite1-d1/conf/source.txt]; then . /data/cesite1-d1/conf/source.txt; fi




Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 06-04-2018 at 03:49 PM.. Reason: Added CODE tags.
# 2  
Old 06-04-2018
Would

Code:
ls -d data/*/conf | while read PN; do [ -f $PN/source.txt ] && . $PN/source.txt; done

(untested) do what you need? If not, supply more details.
# 3  
Old 06-04-2018
Let me explain in different way.

i have two files, a.txt, b.txt

Code:
 more a.txt

root=/proj/app-d1/sun
data=/data/site-d1/conf

more b.txt

root=/proj/app-d2/sun
data=/data/index-i1/conf

now after find and replace, i need a.txt and b.txt to be like this.

Code:
more a.txt

root=/proj/app-i1/sun
data=/data/site-i1/conf

more b.txt

root=/proj/app-i1/sun
data=/data/site-i1/conf


though originally, a.txt and b.txt has different path values, after find and replace it is same.


Moderator's Comments:
Mod Comment Seriously: Please use CODE tags as required by forum rules!

Last edited by RudiC; 06-04-2018 at 04:21 PM.. Reason: Added CODE tags.
# 4  
Old 06-04-2018
And what would your code snippet in post#1 have done to those files a.txt and b.txt?
# 5  
Old 06-04-2018
No it is not my code snippet, it is part of my a.txt. i just copied it from the file.sorry for the confusion. ignore that if statement code.
# 6  
Old 06-04-2018
How far would this get you:
Code:
awk '
        {FN = FILENAME ".TMP"
         if (FN != FNO) close (FNO)
         FNO = FN
         sub ("/proj/[^/]*/sun", "/proj/app-i1/sun")
         sub ("/data/[^/]*/conf", "/data/site-i1/conf")
         print  >  FN
        }
' *.txt
for FN in *.TMP; do mv $FN ${FN%.TMP}; done

This User Gave Thanks to RudiC For This Post:
# 7  
Old 06-11-2018
Hi RudiC,

This works. Thanks a ton.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

30 days old files with full path

my requirement is 30 days old files along with size and pull path of the file (file should be listed in descending by size). output: 12345 /app/testing/file1 12341 /app/testing/file2 (5 Replies)
Discussion started by: Rajesh123
5 Replies

2. Shell Programming and Scripting

Comment all lines which are not already commented for each full path pattern matched

Hello. Question 1 : I want to comment out all lines of a cron file which are not already commented out for each full path pattern matched. Example 1 nothing to do because line is already commented out; pattern = '/usr/bin/munin-cron' # */5 * * * * munin test -x... (3 Replies)
Discussion started by: jcdole
3 Replies

3. Shell Programming and Scripting

Pattern match a path anywhere in the line and replace it with new path

I want to pattern match only path part from below and replace them with new path string. LoadModule jk_module /fldrA/fldrBaf/fldrCaa/modules/mod_jk.so JkWorkersFile /fldrA/fldrBaf/fldrCaa/config/OHS/ohs1/workers.properties JkLogFile... (4 Replies)
Discussion started by: kchinnam
4 Replies

4. Emergency UNIX and Linux Support

Find, replace, file path in multiple files for Solaris 10

Guys I have a big issue that I need to get fixed ASAP however I can not seem to find a way to do it. We started to use zones with Solaris 10 at work and we moved a zone from a SIT box to a DEV box. Problem is the software we have installed is looking at a /lcl/sit/apps/ path and it needs to look... (5 Replies)
Discussion started by: LRoberts
5 Replies

5. Shell Programming and Scripting

How to extract strings from full path when full path is not fixed

/Path/snowbird9/nrfCompMgrRave1230100920.log.gz:09/20/2010 06:14:51 ERROR Error Message. /Path/snowbird6/nrfCompMgrRave1220100920.log.gz:09/20/2010 06:14:51 ERROR Error Message. /Path/snowbird14/nrfCompMgrRave920100920.log.gz:09/20/2010 06:14:51 ERROR Error Message.... (0 Replies)
Discussion started by: Shirisha
0 Replies

6. UNIX for Dummies Questions & Answers

Listing files with full path

Hi, I need to store all the files in a directory to a text file with its full path. The example below can explain: ./File1.txt ./File2.txt ./Folder1/File11.txt ./Folder1/File12.txt ./Folder1/Folder11/File111.txt ./Folder2/file21.txt : : The ls -R1 command won't give the result as... (5 Replies)
Discussion started by: r_sethu
5 Replies

7. Shell Programming and Scripting

List files with full path

Hi all, How to save file full name to a file. I tried the following but don't know to include path name. $ ls -l | awk '{print $9}' > outputfile.dat $ cat outputfile.dat fifth.txt first.txt fourth.txt second.txt third.txt My wanted result is ie: ... (3 Replies)
Discussion started by: mr_bold
3 Replies

8. Shell Programming and Scripting

Replace a filename with full path using sed

hi, i need to replace a line a file with a new raw device location.. original file.. /opt/sybase/ASE1502/ASE-15_0/bin/dataserver \ -d/data/TST_AKS1/sybdevices/master.dat \ -e/logs/sybase/TST_AKS1/SFO_TST_AKS1.log \ -c/apps/sybase/ASE1502/ASE-15_0/TST_AKS1.cfg \... (2 Replies)
Discussion started by: aksaravanan
2 Replies

9. Shell Programming and Scripting

to find the file with full path

Hi, I have written this shell script: fl=`ls -1lrt $mylist | grep '\.xml$' | awk '{print $9}'` echo $fl (1) for i in $fl do for dir in $mylist do if then echo $dir/$i >> tmp (2) fi done done The mylist contains some directory names. The satement (1) gives the sorted list... (5 Replies)
Discussion started by: surjyap
5 Replies

10. UNIX for Dummies Questions & Answers

find pattern in FILES and replace it ??

Hi How can I looking for a pattern found in more than one file and replace it with anther pattern this what I was used: find . -name "account.adrs" -depth -follow -exec grep -l "Email = ;" {} \; this print the files name -which is account.adrs- and its path -which is deferent for each... (4 Replies)
Discussion started by: tamer
4 Replies
Login or Register to Ask a Question