08-22-2006
batch or wordlist search and replace in one file
Hello Experts!
I've become perplexed as to why I can't get this to work and have given up the male "I can do it" attitude. I am asking the unix experts.
The script I am writing involves reading a file that contains thousands of keywords (not csv), just one line after another of keywords and keyword phrases. I am attempting to read each line and carry this "keyword variable" into sed or perl and search and replace the variables in a single file if found.
#!/bin/bash
set +v
IFS=$'\n'
for i in `cat wordlist.txt | dos2unix | sed -e 's/ *$//'`
do
#./mksr "$i" "\<a href=\"http:\/\/www.domain.com\"\>$i\<\/a\>" ./articles.txt
#perl -pi -e 's/search/replace/g' *.text
perl -pi -e 's@$i@<a href=http://www.domain.com>$i</a>@g' articles.txt
#cat articles.txt | sed -e 's@$i@<a href=http://www.domain.com>$i</a>@' > articles.tempfile
#cat articles.txt | tr '$i' '<a href=http://www.domain.com>$i</a>' > articles.tempfile
echo "<a href=http://www.domain.com>$i</a>"
done
------------wordlist-----------
dj
djs
dvd
card
free
ring
vows
bride
cakes
dress
-----------wordlist---------
-----------article-----------
Title: Beverages 101
Subhead: Wines for your Special Day
As the last note of recessional music fades into history and the last scrap of choice confetti (be it birdseed or rice) hits the earth, the guests rise from their seats and begin to scour the premises, all with one target on their minds ...
-----------article------------
What the heck am I doing wrong in the for loop?
Any help would be greatly appreciated! I've spend three days on this and can't seem to find one example on the internet of someone trying to do this. Lots of examples of how to do a single word sed s/blah/blah2/g on many files, but no multiple interactions of search and replace same file with a keyword lists!
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi guys,
I have one file with duplicate string. I want to replace all the occurance of that string with some other string.
How can I do that in vi editor?
Malay Maru (3 Replies)
Discussion started by: malaymaru
3 Replies
2. UNIX for Advanced & Expert Users
Hello Experts!
I've become perplexed :confused: as to why I can't get this to work and have given up the male "I can do it" attitude. I am asking the unix experts.
The script I am writing involves reading a file that contains thousands of keywords (not csv), just one line after another of... (0 Replies)
Discussion started by: zerobreach.com
0 Replies
3. Shell Programming and Scripting
Hi All,
As I'm working on a Unix script...
and the requirement is like, I need to search a word and replace it with the another word...
for that i'm using SED command....
can anybody give any other alternate for this...?
Thanks
Amit (2 Replies)
Discussion started by: Amits
2 Replies
4. Shell Programming and Scripting
Hi
I have to search & replace column in the file.For example ..below iam having File1. in which 3rd column ...if it is A it should be 'ACT' if P it should be 'PAD' and if it ils D it should be 'DEC'
I have to pass column no ,value and to be converted value as variables in to the... (2 Replies)
Discussion started by: satyam_sat
2 Replies
5. UNIX for Advanced & Expert Users
I have a file (say file1.txt) and I have to search for a line which has a text replace it and replace another string too in the same line.
Eg:
file1.txt
--------
x='hai' y='world' z='unix'
x='hai'
y='world'
x='hai' z='perl' y='world' z="world" k="junk" b="world"
z='perl' x='hai'... (3 Replies)
Discussion started by: ammu
3 Replies
6. Shell Programming and Scripting
Hi all,
The operating system is Solaris 10
I have example line here below I need to change the stat1 to stat2 using a shell script. search for space(" ") and replace with "\ "
Stat1 --- /data/Sat Night Stay.txt
Stat2 --- /data/Sat\ Night\ Stay.txt
Thanks
Firestar. (1 Reply)
Discussion started by: firestar
1 Replies
7. Shell Programming and Scripting
Can you please point me in the correct direction?
I need a line or script to run though a given directory and find all files with "@domain.local" in there names and simple remove that.
For example if the files were named 1234@domain.local the file would then become 1234. (1 Reply)
Discussion started by: binary-ninja
1 Replies
8. Shell Programming and Scripting
Hi Team,
I am new to unix, please help me in this.
I have a file named properties.
The content of the file is :
##Mobile props
east.url=https://qa.east.corp.com/prop/end
west.url=https://qa.west.corp.com/prop/end
south.url=https://qa.south.corp.com/prop/end... (2 Replies)
Discussion started by: tolearn
2 Replies
9. Shell Programming and Scripting
Hi,
more data.txt
more srstring.sh
input="data.txt"
while IFS= read -r var
do
startdirectory=$loc
search=$(echo $var | awk -F'=' '{print $1}')
replace=$(echo $var | awk -F'=' '{print $2}')
find "/tmp/config" -type f -exec grep -l "$search" {} + |
while read file
do if sed -e... (9 Replies)
Discussion started by: mohtashims
9 Replies
10. Shell Programming and Scripting
hi All
i'm new to shell/bash scripting and need help to write a script.
question: i have a file of 100's of line, i need to replace all zeros in that file with its respective position, starting from 0 to 23 and remove the remaining
sample file is like.
Enter the date in the format... (12 Replies)
Discussion started by: sunnu2u86
12 Replies
LEARN ABOUT BSD
crosspost
CROSSPOST(8) System Manager's Manual CROSSPOST(8)
NAME
crosspost - create the links for cross posted articles
SYNOPSIS
crosspost [ -D dir ] [ -s ] [ file... ]
DESCRIPTION
Crosspost reads group and article number data from files or standard input if none are specified. (A single dash in the file list means to
read standard input.) It uses this information to create the hard, or symbolic, links for cross posted articles. Crosspost is designed to
be used by InterNetNews to create the links as the articles come in. Normally innd creates the links but by having crosspost create the
links innd spends less time waiting for disk IO. In this mode one would start innd(8) using the ``-L'' flag.
Crosspost expects input in the form:
group.name/123 group2.name/456 group3.name/789
with one line per article. Any dots in the input are translated into "/" to translate the news group into a pathname. The first field is
assumed to be the name of an existing copy of the article. Crosspost will attempt to link all the subsequent entries to the first using
hard links if possible or symbolic links if that fails.
By default, crosspost processes its input as an INN channel feed written as a ``WR'' entry in the newsfeeds(5) file, for example:
crosspost:*:Tc,Ap,WR:/usr/lib/news/bin/crosspost
To process the history file and re-create all the links for all articles use:
awk <history -F' ' '(NF > 2){print $3}' | crosspost
(where the -F is followed by a tab character.)
The ``-D'' flag can be used to specify where the article spool is stored. The default directory is /var/spool/news.
By default crosspost will fsync(2) each article after updating the links. The ``-s'' flag can be used to prevent this.
HISTORY
Written by Jerry Aguirre <jerry@ATC.Olivetti.Com>.
SEE ALSO
newsfeeds(5), innd(8).
CROSSPOST(8)