Replacing a word


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing a word
# 1  
Old 12-08-2009
Replacing a word

Dear Friends,
I am facing some problem with some hundred files. Hence to use these file I have to make a small change in each file. But its not possible to open each file and make changes manually. Hence I need guidance frm you to automate it.

Example File name is "Queue_11.txt"

reload sec=F
Code=7
reload sec=F
reload sec=F
No-load=F1
Reset
NULL
A-cap=LA
reload sec=F


In above text I want to replace reload sec=F to reload sec=FQ. But occurrence of this pattern is around 4 times in whole file... I want to replace only 3rd line.


I am expecting o/p as follows
reload sec=F
Code=7
reload sec=F
reload sec=FQ
No-load=F1
Reset
NULL
A-cap=LA
reload sec=F



Please suggest.
# 2  
Old 12-08-2009
Code:
awk '3==c++ && /^reload sec=F$/{$0=$0"Q"}1' infile > newfile


Last edited by danmero; 12-08-2009 at 07:31 AM.. Reason: change pattern, just in case
# 3  
Old 12-08-2009
If the line you want to change is the 4th line in each file:

Code:
$ ls
queue_11.txt  queue_12.txt	 queue_13.txt

Code:
$ ls Que*.txt |
> while read FILE
> do
> sed '4s/F/FQ/' ${FILE} > ${FILE}.new
> done

Code:
$ ls
queue_11.txt.new	queue_12.txt.new  queue_13.txt.new
queue_11.txt  queue_12.txt	queue_13.txt

Code:
$ cat Queue_11.txt.new 
reload sec=F
Code=7
reload sec=F
reload sec=FQ
No-load=F1
Reset
NULL
A-cap=LA
reload sec=F

$ cat Queue_12.txt.new
reload sec=F
Code=7
reload sec=F
reload sec=FQ
No-load=F1
Reset
NULL
A-cap=LA
reload sec=F

$ cat Queue_13.txt.new
reload sec=F
Code=7
reload sec=F
reload sec=FQ
No-load=F1
Reset
NULL
A-cap=LA
reload sec=F


Last edited by jsmithstl; 12-08-2009 at 06:46 AM.. Reason: deleted cat *.new to show individual file listings
# 4  
Old 12-08-2009
Code:
sed  '3s/reload sec=F/reload sec=FQ/' infile > newfile

in GNU sed you can set the -i option to change your input file
# 5  
Old 12-08-2009
If the pattern isn't on the 3rd line and you want to replace the 3rd occurance (wherever):

Code:
awk '/reload sec=F/ && ++c==3{$0="reload sec=FQ"}1' file > newfile

# 6  
Old 12-08-2009
bash
Code:
count=0
while read -r line
do
    case "$line" in
        *"reload sec=F"* )
            count=$((count+1))
            if [ "$count" -eq 3 ] ;then
                line=${line/reload sec=F/reload sec=QF}
            fi
            ;;
    esac
    echo $line
done < "file"

# 7  
Old 12-08-2009
Code:
awk '3==c++ && /^reload sec=F$/{$0=$0"Q"}1' infile > newfile
awk '/reload sec=F/ && ++c==3{$0="reload sec=FQ"}1' file > newfile

Why have the different?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replacing the first word if the word three match

Dear ALL, I have sample file : IDcentos-forum,bash,linuxCentOS,GNome IEfedora-milis,cli,linuxRedhat,KDE IRfreebsd-milis,aix,unixbsd,pyton required output: centos,bash,linuxCentOS,GNome fedora,cli,linuxRedhat,KDE freebsd,aix,unixbsd,pyton Can you help me pls.. (1 Reply)
Discussion started by: gnulyn
1 Replies

2. Shell Programming and Scripting

Replacing a particular word with another word in all the xml's under a particular directory with sed

Hi Folks, Could you please advise what will be the SED command to replace a word in all xml's under a particular directory for example let say I rite now at the following below location $ cd /ter/rap/config now under config directory there will be lots of xml file , now my objective is to... (1 Reply)
Discussion started by: punpun66
1 Replies

3. UNIX for Dummies Questions & Answers

Replacing word and Capitalize words after

I have an assignment and I am not sure what to do. In Unix, I use PuTTY change the semicolon (;) to a period, and capitalize the first letter of the word immediately after it. I know change command is M-% and "." so only one semicolon is changed but I am not sure how to... (1 Reply)
Discussion started by: kathrut43
1 Replies

4. Shell Programming and Scripting

Replacing first word while extracting

Hello All, I am extracting a part of file. the file looks as follows USING CHARACTER SET UTF8 DEFINE JOB ( DEFINE SCHEMA Flat_File_Schema ( cntnt_id VARCHAR(10) ); DEFINE OPERATOR o_mload TYPE update SCHEMA * ATTRIBUTES ( VARCHAR TdpId = @TdpId (5 Replies)
Discussion started by: nnani
5 Replies

5. Shell Programming and Scripting

Replacing a word with a buch of lines

Input file: I want to replace "change" with the below lines What is the best way to replace it? (5 Replies)
Discussion started by: gomes1333
5 Replies

6. UNIX for Dummies Questions & Answers

regular expression for replacing the fist word with a last word in line

I have a File with the below contents File1 I have no prior experience in unix. I have just started to work in unix. My experience in unix is 0. My Total It exp is 3 yrs. I need to replace the first word in each line with the last word for example unix have no prior experience in... (2 Replies)
Discussion started by: kri_swami
2 Replies

7. Shell Programming and Scripting

Replacing word and Incrementing

Hi I'm having difficulty in writing a script with searching a specified word using sed and replaces that word with numbers that is incremented I tried this: #!/bin/sh awk '{ for (i=2010; i<=NF; i++) sed 's/TBA/$i; }' filename.txt > outputfile.txt but it doesn't work. here is my desired... (1 Reply)
Discussion started by: sexyTrojan
1 Replies

8. Shell Programming and Scripting

Replacing of word

Hi all, I wanted to replace one word with another word pl help me to solve the same. example:- I wanted to replace RXOTX with RXOTRX in a perticuler file with hole. Regards, Ramesh (2 Replies)
Discussion started by: Ramesh Vellanki
2 Replies

9. Shell Programming and Scripting

Replacing a word after a matched pattern

Hello, Actually i want to replace the word after a matched pattern. For Ex: lets say that i am reading a file line by line while read line do echo $line # i need to search whether a pattern exists in the file and replace the word after if the pattern exist. # for example :... (1 Reply)
Discussion started by: maxmave
1 Replies

10. Shell Programming and Scripting

Replacing a word with another in shell programming

Hello everyone, I am trying to replace a word by another using shell programming. for that, I can use sed -i 's/second_word/first_word/' file_name but for me,the problem is that I don't know one of the words, It is present in a variable that are created dynamically by... (4 Replies)
Discussion started by: eamani_sun
4 Replies
Login or Register to Ask a Question