Find keywords, and append at the end of line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find keywords, and append at the end of line
# 1  
Old 04-22-2014
Find keywords, and append at the end of line

Task: Find keywords in each line, and append at the end of line; if not found in the line, do nothing.

the code is wrong. how to make it work. thanks a lot.

Code:
cat keywords.txt | while read line; do

        awk -F"|" '{if (/$line/) {print $0"$line , ";} else print;}' outfile.txt > tmp

        mv -f tmp outfile.txt
done

outfile.txt content look like this:
Code:
title1|content1|keywords... if keywords found in title1 or content1

keywords.txt content look like this: one keyword each line.
Code:
keyword1
keyword2
keyword3


Last edited by dtdt; 04-22-2014 at 03:15 PM.. Reason: add info
# 2  
Old 04-22-2014
Please provide sample fileS and the desired output (using code tags).
# 3  
Old 04-22-2014
anything not clear buddy?

Quote:
Originally Posted by vgersh99
Please provide sample fileS and the desired output (using code tags).
# 4  
Old 04-22-2014
just a guess, pal!
Code:
awk -F'|' 'FNR==NR{keys[$0];next} {for(i in keys) {if ($1==i) $0=$0 OFS i; if ($2==i) $0=$0 ((NF>2)? " ":OFS) i}}1' OFS='|' keywords.txt outfile.txt

# 5  
Old 04-22-2014
no good

Quote:
Originally Posted by vgersh99
just a guess, pal!
Code:
awk -F'|' 'FNR==NR{keys[$0];next} {for(i in keys) {if ($1==i) $0=$0 OFS i; if ($2==i) $0=$0 ((NF>2)? " ":OFS) i}}1' OFS='|' keywords.txt outfile.txt

# 6  
Old 04-22-2014
Quote:
Originally Posted by dtdt
no good
ok, thanks for sharing and for being thorough!

Last edited by vgersh99; 04-22-2014 at 05:15 PM..
# 7  
Old 04-22-2014
Give us sample data in outfile.txt and expected output, tmp
Please provide few rows in each file
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Append Pipes at the end of each line

Hi , I have pipe delimited file containing 12 columns having below data in AIX Input : A|B|C|D|E|F|G|H|I|J|K|L^M A1|B1|C1|D1|E1^M A2|B2|C2^M So in first row i have 11 pipes which is fine. In second row I have 4 pipes, so additional 7 pipes should get append In third row I have 2... (3 Replies)
Discussion started by: sonu_pal
3 Replies

2. Shell Programming and Scripting

Append this string to end of each line

Platform: Solaris 10 I have a file like below $ cat languages.txt Spanish Norwegian English Persian German Portugese Chinese Korean Hindi Malayalam Bengali Italian Greek Arabic I want to append the string " is a great language" at end of each line in this file. (3 Replies)
Discussion started by: omega3
3 Replies

3. Shell Programming and Scripting

sed - Find a String and append a text end of the Line

Hi, I have a File, which have multiple rows. Like below 123456 Test1 FNAME JRW#$% PB MO Approver XXXXXX. YYYY 123457 Test2 FNAME JRW#$% PB MO Super XXXXXX. YYYY 123458 Test3 FNAME JRW#$% PB MO Approver XXXXXX. YYYY I want to search a line which contains PB MO Approver and append... (2 Replies)
Discussion started by: java2006
2 Replies

4. Shell Programming and Scripting

find a certain line and append text to the end of the line

After I create printer queues in AIX, I have to append a filter file location within that printers custom file. within lets say test_queue.txt I need to find the row that starts with :699 and then I need to append on the end the string /usr/local/bin/k_portrait.sh. Now I've gotten the sed... (2 Replies)
Discussion started by: peachclift
2 Replies

5. Shell Programming and Scripting

Append text to end of every line

I've scoured the internet with mixed results. As an amateur I turn to the great minds here. I have a text file of 80 or so lines. I want to add ".pdf" to the end of each line. (For now that's it) Most of the internet points toward using "sed". I don't know coding but can figure things out... (4 Replies)
Discussion started by: spacebase
4 Replies

6. UNIX for Dummies Questions & Answers

Append characters to end of line

Coding in unix shell script. Hi All, Please help Thanks (6 Replies)
Discussion started by: sam12345
6 Replies

7. Shell Programming and Scripting

append end of line with 8 spaces

child_amt=$amount prev_line="$prev_line $child_amt" i am getting the result like this 21234567890001343 000001004OLFXXX029100020091112 0000060 but i want 8 spaces between the eg: 21234567890001343 000001004OLFXXX029100020091112 0000060 how can i do this in .ksh (1 Reply)
Discussion started by: kshuser
1 Replies

8. Shell Programming and Scripting

search directory-find files-append at end of line

Hi, I have a command "get_data" with some parameters in few *.text files of a directory. I want to first find those files that contain this command and then append the following parameter to the end of the command. example of an entry in the file :- get_data -x -m50 /etc/web/getid this... (1 Reply)
Discussion started by: PrasannaKS
1 Replies

9. Shell Programming and Scripting

how to append the pattern at the end of the line

-Hi I have multiple files which contain a line with the word "exec". I need to add the following pattern " -cmode -ccheap" on the same line where "exec" is at the end. Any idea? Thanks a lot in advance to everybody... -A (2 Replies)
Discussion started by: aoussenko
2 Replies

10. Shell Programming and Scripting

How to append words at the end of first line

Hi Unix gurus This is my first post here. I have a file which looks like this: string1,string2 ,string3 ,string4 ... ... I need to append all words below first line to the first line, ie string1,string2,string3,string4,... Bear in mind that it is not known how many lines follow... (11 Replies)
Discussion started by: lmatlebyane
11 Replies
Login or Register to Ask a Question