Find a text and if condition matches then replace it


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find a text and if condition matches then replace it
# 1  
Old 09-08-2018
Find a text and if condition matches then replace it

Need a script that can find text in a file and replace it accordingly.
This is the file I have:

Code:
while IFS=',' read -r f1 f2 f3
do
{
nohup /home/testuser/dbmaintenance/sys_offline_maintenance.sh $f1 $f2 $f3 > $f2.out &
}
done < "/home/testuser/dbmaintenance/week1offlineserver.txt"

In this file I need a script that can look for the number after week in week1offlineserver.txt and replace it like: If number is 1, change it to 2, if number is 2 then to 3 and if it is 3 then to 4 and if it is 4 then to 1.

Last edited by Scrutinizer; 09-08-2018 at 04:35 PM..
# 2  
Old 09-08-2018
Quote:
Originally Posted by singhhe
Need a script that can find text in a file and replace it accordingly.
This is the file I have:

Code:
while IFS=',' read -r f1 f2 f3
do
{
nohup /home/testuser/dbmaintenance/sys_offline_maintenance.sh $f1 $f2 $f3 > $f2.out &
}
done < "/home/testuser/dbmaintenance/week1offlineserver.txt"

In this file I need a script that can look for the number after week in week1offlineserver.txt and replace it like: If number is 1, change it to 2, if number is 2 then to 3 and if it is 3 then to 4 and if it is 4 then to 1.
I question the wisdom of what you are trying to do, but I will not elaborate unless you care to share.

Please, try the following:

Code:
 perl -pe 'BEGIN{%id=(1=>2, 2=>3, 3=>4, 4=>1)} s/week(\d)off/week$id{$1}off/g' program.sh

if you like the result run it as this to save it to the same file.
Code:
perl -i -pe 'BEGIN{%id=(1=>2, 2=>3, 3=>4, 4=>1)} s/week(\d)off/week$id{$1}off/g' program.sh


Last edited by Aia; 09-08-2018 at 07:30 PM..
This User Gave Thanks to Aia For This Post:
# 3  
Old 09-08-2018
We run maintenance

We need to run maintenance on servers listed in the text files. I need to be able to have the file automatically change the text file (to a new list of servers) ever week.
The servers are in week1..., week2... and so on.
So basically my aim is to have the server rotate the list of servers going formaintenance every week.

------ Post updated at 07:49 PM ------

Code:
perl -i -pe 'BEGIN{%id=(1=>2, 2=>3, 3=>4, 4=>1)} s/week(\d)off/week$id{$1}off/g' program.sh

What is program.sh here?
# 4  
Old 09-08-2018
Quote:
Originally Posted by singhhe

Code:
perl -i -pe 'BEGIN{%id=(1=>2, 2=>3, 3=>4, 4=>1)} s/week(\d)off/week$id{$1}off/g' program.sh

What is program.sh here?
The place holder for whatever you script is named, the one you want to re-write.
This User Gave Thanks to Aia For This Post:
# 5  
Old 09-09-2018
Many Thanks! Works like a charm.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grepping only if condition matches

Dear Friends, I have a flat file which is as follows $cat sample 123,456,1,1,1,1 sdfas,345,1,1,1,1 dfgd,234,2,3,4,1 ggffgr,234,4,3,2,1 jkhu,354.1,1,1,1 $ I want to get output of only those lines which has '1' in 3 to 5 position. So I want output as follows 123,456,1,1,1,1... (8 Replies)
Discussion started by: anushree.a
8 Replies

2. Shell Programming and Scripting

Shell Script @ Find a key word and If the key word matches then replace next 7 lines only

Hi All, I have a XML file which is looks like as below. <<please see the attachment >> <?xml version="1.0" encoding="UTF-8"?> <esites> <esite> <name>XXX.com</name> <storeId>10001</storeId> <module> ... (4 Replies)
Discussion started by: Rajeev_hbk
4 Replies

3. Shell Programming and Scripting

Send email if the condition matches

Hello everyone, I am trying to create function or script to send email from an address book file. Here is the file format i have, Susan:Miller:M:123 Main Street:Philadelphia:PA:17101:666-645-6666:Susan.Miller@gmail.com:07/12/1979 Robert:Langan:S:32 North Avenue:San... (5 Replies)
Discussion started by: asistant
5 Replies

4. Emergency UNIX and Linux Support

Find a line using a condition and replace a string in that line

Hello, I have a 100 line code. I have given a sample of it below: ABC*654654*1*54.54*21.2*87*1*654654654654 CCC*FS*FS*SFD*DSF GGG*FGH*CGB*FBDFG*FGDG ABC*654654*1*57.84*45.4*88*2*6546546545 CCC*WSF*SG*FGH*GHJ ADA*AF*SFG*DFGH*FGH*FGTH I need to select the line starting with "ABC" its... (3 Replies)
Discussion started by: nithins007
3 Replies

5. Shell Programming and Scripting

Replace text inside XML file based on condition

Hi All, I want to change the name as SEQ_13 ie., <Property Name="Name">SEQ_13</Property> when the Stage Type is PxSequentialFile ie., <Property Name="StageType">PxSequentialFile</Property> :wall: Input.XML <Main> <Record Identifier="V0S13" Type="CustomStage" Readonly="0">... (3 Replies)
Discussion started by: kmsekhar
3 Replies

6. Shell Programming and Scripting

Find and add/replace text in text files

Hi. I would like to have experts help on below action. I have text files in which page nubmers exists in form like PAGE : 1 PAGE : 2 PAGE : 3 and so on there is other text too. I would like to know is it possible to check the last occurance of Page... (6 Replies)
Discussion started by: lodhi1978
6 Replies

7. Shell Programming and Scripting

Need to find a string, check the next line, and if it matches certain criteria, replace it with a s

Hey Fellas. I am new to scripting. I have searched through the forums and found a lot of good info, but I can't seem to get any of it to work together. I am trying to find a particular sting in a file, and if the next string matches certain criteria, replace it with a string from a csv... (6 Replies)
Discussion started by: midniteslice
6 Replies

8. Shell Programming and Scripting

find text but replace a text beside it

I have an html file that looks like this (this is just a part of the html file): <td colspan="3" rowspan="1" style="text-align: center; background-color: rgb(<!-- IDENTIFIER1 -->51, 255, 51);"><small><!-- IDENTIFIER2 -->UP</small></td> This is to automatically update the status of the... (4 Replies)
Discussion started by: The One
4 Replies

9. UNIX for Dummies Questions & Answers

Find and replace text PLEASE HELP

Dear friends please help, I have a large data file with few hundred lines. A small example is shown below: datafile is a file with few hundred lines with the third column has many different character stings: test 100 abc test 134 bcd test 356 cdf test 831 dfg test 720 fgh I need to... (6 Replies)
Discussion started by: bobo
6 Replies

10. UNIX for Dummies Questions & Answers

Find and replace text

test 100 abc test 134 bcd test 356 cdf test 831 dfg test 720 fgh Please advise how can I replace the abc, bcd....with ABC, BCD.... (1 Reply)
Discussion started by: bobo
1 Replies
Login or Register to Ask a Question