Visit Our UNIX and Linux User Community


find a string in a file and add some text after that file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find a string in a file and add some text after that file
# 1  
Old 04-30-2009
Data find a string in a file and add some text after that file

Hi
Could you please help me out by solving teh below problem ?
I have a file with as below
source1|target1|yes
source2|target2|no

source1 is file in which i have to place some code under the <head> tag in it.
What code i have to place in source1 is something like this "abcd.....<target1> ...xyz"
But i have to do this replacment only is the third string in the above file "source1|target1|yes" is "yes"
if is no, i shouldn't replace the code.

Could anyone help to resolve this problem ?

Thanks in Advance,
Tasha
# 2  
Old 04-30-2009
Hi Tasha_t,

You can do somethng lik this :

Code:
 
cat gre.txt
 
source1|target1|yes
source2|target2|no

for i in `cat "gre.txt" | awk -F"|" '{if ($3=="yes") print $1}' `
do
sed '
/<HEAD>/ a\
Add the text you want
' $i >> save

done


Last edited by panyam; 04-30-2009 at 10:22 AM..
# 3  
Old 04-30-2009
Code:
#!/bin/ksh

while IFS='|' read file tag yn
do
   if [ "${yn}" = 'yes' ]; then
      printf "/<%s>/ a\nAdd whatever you want\n.\nwq!\n" "${tag}" | ex - "${file}"
  fi
done < myFile

# 4  
Old 04-30-2009
Sorry, both of them didn't work...
below is the script i wrote which is workign fine till breakign the code
********************
for i in `cat redirect_list`
do
source=`echo "$i" | cut -d '|' -f1`
target=`echo "$i" | cut -d '|' -f2`
move=`echo "$i" | cut -d '|' -f3`
if [ $move = "YES" ] ; then
sed -i 's/\<head\>/..................../g' /export/home/chandu/copies/"$source" ### this is the main line where i have to change to get the actual code working ..
fi
done
**************
Please let me know how i can add text ...
# 5  
Old 04-30-2009
Tasha_T,

FYI , The code tht i hav posted working properly.

Below is the complte info :

Code:
 
PANYAM/TESTBOX>cat gre.txt
source1|target1|yes
source2|target2|no
PANYAM/TESTBOX>cat source1
Before Head
<HEAD>
## Text to be added
</HEAD>

<BODY>
dskls
</BODY>

PANYAM/TESTBOX>cat b
for i in `cat "gre.txt" | awk -F"|" '{if ($3=="yes") print $1}' `
do
sed '
/<HEAD>/ a\
Add the text you want
' $i >> op_save
done
PANYAM/TESTBOX>cat op_save
Before Head
<HEAD>
Add the text you want
## Text to be added
</HEAD>

<BODY>
dskls
</BODY>

You hav to note that sed will not edit the text "inline" .You hav to save the file once edited.
# 6  
Old 04-30-2009
ok - misread the original requirements - sorry 'bout that.

Given 'source1':
Code:
Before Head
<head>
## Text to be added
</head>

<BODY>
dskls
</BODY>

and myFile:
Code:
source1|target1|yes
source2|target2|no

.... and tasha.sh:
Code:
#!/bin/ksh

while IFS='|' read file tag yn
do
   if [ "${yn}" = 'yes' ]; then
      printf '/<head>/a\nabcd.....<%s> ...xyz\n.\nwq!\n' "${tag}"| ex - "${file}"
  fi
done < myFile

running 'tasha.sh', modifies 'source1' as:
Code:
Before Head
<head>
abcd.....<target1> ...xyz
## Text to be added
</head>

<BODY>
dskls
</BODY>


Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find and replace a string in a text file

Dear all, I want to find all the "," in my text file and then replace the commas to a tab. I found a script online but I don't know how to modify the script for my case. Any one can help? Thank you. @echo off &setlocal set "search=%1" set "replace=%2" set "textfile=Input.txt" set... (2 Replies)
Discussion started by: forevertl
2 Replies

2. Shell Programming and Scripting

Read in search strings from text file, search for string in second text file and output to CSV

Hi guys, I have a text file named file1.txt that is formatted like this: 001 , ID , 20000 002 , Name , Brandon 003 , Phone_Number , 616-234-1999 004 , SSNumber , 234-23-234 005 , Model , Toyota 007 , Engine ,V8 008 , GPS , OFF and I have file2.txt formatted like this: ... (2 Replies)
Discussion started by: An0mander
2 Replies

3. Shell Programming and Scripting

[Need help] perl script to find the occurance of string from a text file

I have two files 1. input.txt 2. keyword.txt input.txt has contents like .src_ref 0 "call.s" 24 first 0x000000 0x5a80 0x0060 BRA.l 0x60 .src_ref 0 "call.s" 30 first 0x000002 0x1bc5 RETI .src_ref 0 "call.s" 31 first 0x000003 0x6840 ... (2 Replies)
Discussion started by: acdc
2 Replies

4. Shell Programming and Scripting

Search a string in a text file and add another string at the end of line

Dear All I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB... (5 Replies)
Discussion started by: suryanarayana
5 Replies

5. Shell Programming and Scripting

Search a string in a text file and add another string at the particular position of a line

I am having a text file which is having more than 200 lines. EX: 001010122 12000 BIB 12000 11200 1200003 001010122 2000 AND 12000 11200 1200003 001010122 12000 KVB 12000 11200 1200003 In the above file i want to search for string KVB and add/replace... (1 Reply)
Discussion started by: suryanarayana
1 Replies

6. Shell Programming and Scripting

Awk to convert a text file to CSV file with some string manipulation

Hi , I have a simple text file with contents as below: 12345678900 971,76 4234560890 22345678900 5971,72 5234560990 32345678900 71,12 6234560190 the new csv-file should be like: Column1;Column2;Column3;Column4;Column5 123456;78900;971,76;423456;0890... (9 Replies)
Discussion started by: FreddyDaKing
9 Replies

7. Shell Programming and Scripting

How to find repeated string in a text file

I have a text file where I need to find the string = ST*850* This string is repetaed several times in the file, so I need to know how many times it appears in the file, this is the text files: ISA*00* *00* *08*925485USNR *ZZ*IMSALADDERSP... (13 Replies)
Discussion started by: cucosss
13 Replies

8. Shell Programming and Scripting

find string(s) in text file and nearby data, export to list help

Hi, So I'm kinda new to shell scripts and the like. I've picked up quite a bit of use from browsing the forums here but ran into a new one that I can't seem to find an answer for. I'm looking to parse/find a string AND the next 15 or so charachters that follow the string within a text file... (1 Reply)
Discussion started by: kar23me
1 Replies

9. Shell Programming and Scripting

Find string in text file

Hello! Please, help me to write such script. I have some text file with name filename.txt I must check if this file contains string "test-string-first", I must cut from this file string which follows string "keyword-string:" and till first white-space and save it to some variable. For... (3 Replies)
Discussion started by: optik77
3 Replies

10. Shell Programming and Scripting

Looking for command(s)/ script to find a text string within a file

I need to search through all files with different file suffixes in a directory structure to locate any files containing a specific string (5 Replies)
Discussion started by: wrwelden
5 Replies

Featured Tech Videos