Need some help deleting words from a line which are not my "Keyword"


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need some help deleting words from a line which are not my "Keyword"
# 1  
Old 07-18-2010
Error Need some help deleting words from a line which are not my "Keyword"

Hi, i'm currently new to scripting and need some help with my problem, so i'll jump right to it.

I have a file containing text, the file is pretty big so for the sake of this i'll just say this is the text:

Code:
John id number is abc34938
Grahams id number is pending
id number abc64334 is Bob's 
abc32432 is the id number for Jim 
Mike's ID number is pending
Michael id number is abc4352

What i would like to do is search the lines for the keyword "abc", and the lines which contain the keyword, I would like to delete the other words in the line. Thus leaving an output as such:

Code:
abc34938
Grahams id number is pending
abc64334
abc32432
Mike's ID number is pending
abc4352

I've searched far and wide for a solution and came stuck, so im really hoping one of you guys could help me out.

Thank you for your time

Last edited by radoulov; 07-18-2010 at 12:16 PM.. Reason: Please use code tags!
# 2  
Old 07-18-2010
Code:
perl -nle'
  /abc/ and print /abc\w+/g 
    or print  
  ' infile

# 3  
Old 07-18-2010
Thanks for the reply mate, as i'm new i'm going to risk angering the gods by asking if that would work even though im doing bash scripting and not perl? (I would try it now but don't have the facilities to do so just now)

I suppose if you say yes, then I should ask if I need to include anything in my bash script to enable it? As currently I have #!bin/bash at the top, would I need to do anything else to this?

Last edited by linuxkid; 07-18-2010 at 01:32 PM..
# 4  
Old 07-18-2010
Hi

Code:
sed  '/abc/s/.*\(abc[0-9][0-9]*\).*/\1/' file

Guru.
# 5  
Old 07-18-2010
Thank you for the reply Guru, just a quick addition to the question if I may, what if there were two words I wanted to keep on a line? would I just use the '|' symbol to specify 'or'?
# 6  
Old 07-18-2010
Quote:
Originally Posted by linuxkid
[...]
I suppose if you say yes, then I should ask if I need to include anything in my bash script to enable it? As currently I have #!bin/bash at the top, would I need to do anything else to this?
You just need to have the Perl interpreter in your PATH (ant it's already there on most systems).
If you have more that one abcxxx on the same line, you'll have all of them printed as one word,
if you them separated (by a single space, for instance), you should change the code like this:

Code:
perl -nle'
  /abc/ and print join " ", /abc\w+/g 
    or print
  ' infile

# 7  
Old 07-18-2010
Code:
awk '{for (i=1;i<=NF;i++) {if ($i~/^abc/) $0=$i}}1' urfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Failure: if grep "$Var" "$line" inside while read line loop

Hi everybody, I am new at Unix/Bourne shell scripting and with my youngest experiences, I will not become very old with it :o My code: #!/bin/sh set -e set -u export IFS= optl="Optl" LOCSTORCLI="/opt/lsi/storcli/storcli" ($LOCSTORCLI /c0 /vall show | grep RAID | cut -d " "... (5 Replies)
Discussion started by: Subsonic66
5 Replies

2. Shell Programming and Scripting

Delete all log files older than 10 day and whose first string of the first line is "MSH" or "<?xml"

Dear Ladies & Gents, I have a requirement to delete all the log files in /var/log/test directory that are older than 10 days and their first line begin with "MSH" or "<?xml" or "FHS". I've put together the following BASH script, but it's erroring out: for filename in $(find /var/log/test... (2 Replies)
Discussion started by: Hiroshi
2 Replies

3. Shell Programming and Scripting

Find lines with "A" then change "E" to "X" same line

I have a bunch of random character lines like ABCEDFG. I want to find all lines with "A" and then change any "E" to "X" in the same line. ALL lines with "A" will have an "X" somewhere in it. I have tried sed awk and vi editor. I get close, not quite there. I know someone has already solved this... (10 Replies)
Discussion started by: nightwatchrenba
10 Replies

4. Shell Programming and Scripting

Deleting "user input line number" from a file using sed

Hi I want to delete a line from a txt file for which the line number is user input. Say when user selects 19, the 19th line would be deleted from the file. Can anyone please provide me with a sed one liner for the same... I tried sed -i. The interaction would be like this Enter the line... (4 Replies)
Discussion started by: sudeep.id
4 Replies

5. UNIX for Dummies Questions & Answers

Deleting "user input line number" from a file using sed

Hi I want to delete a line from a txt file for which the line number is user input. Say when user selects 19, the 19th line would be deleted from the file. Can anyone please provide me with a sed one liner for the same... I tried sed -i. The interaction would be like this Enter the line to... (1 Reply)
Discussion started by: sudeep.id
1 Replies

6. Shell Programming and Scripting

Error for "continue" keyword in Linux script.

Hi All I have a function in a linux script like this clean_up() { db2 -x "UPDATE ${DB_SCHEMA_NAME}.ETL_DAILY SET ETL_STATUS = 'SUCCESSFUL' WHERE PROCESS_DATE = '${INT_RUN_DATE}' AND BATCH_NO = ${CM_BATCH} AND APP_ID = ${APP_ID} AND APP_VERSION = '${APP_VERSION}'" > ${TMPOUT} ... (3 Replies)
Discussion started by: vee_789
3 Replies

7. AIX

"Frames" and "Words" in fcstat output

What are "Frames" and "Words" in the fcstat output? vio1:/home/padmin:# fcstat fcs0 <snip> Transmit Statistics Receive Statistics ------------------- ------------------ Frames: 122844229 363445456 Words: 50940091904 171210861568 <snip> The... (1 Reply)
Discussion started by: kah00na
1 Replies

8. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

10. UNIX for Dummies Questions & Answers

grep/cat/more -- search in a txt file and display content from a specific "keyword"

Hi, I have a .txt file Sample: ===================== NEXT HOST ===================== AEADBAS001 ip access-list extended BLA_Incoming_Filter ip access-list extended BLA_Outgoing_Filter access-list 1 permit xxxxxxxxxxxxxx access-list 2 permit xxxxxxxxxxxxxx =====================... (4 Replies)
Discussion started by: I-1
4 Replies
Login or Register to Ask a Question

Featured Tech Videos