Visit Our UNIX and Linux User Community


Problems extracting word using SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problems extracting word using SED
# 1  
Old 01-05-2012
Data Problems extracting word using SED

I have a file containing strings such as:

UPDATE PS_CA_BI_FF2_TA3 SET DELETE_ME = 'Y' WHERE PROCESS_INSTANCE
BI.LAST_UPDATE_DTTM FROM PS_CA_BP_LINES LINE, PS_INTFC_BI BI WHERE
EXISTS ( SELECT 'X' FROM PS_CA_BILL_PLAN BP WHERE BP.CONTRACT_NUM
%Select(COUNTER4) SELECT COUNT(*) FROM PS_INTFC_BI WHERE INTFC_ID

I'm trying to extract all the words begining with " PS_" from the lines and only the words. The results should look like

PS_CA_BI_FF2_TA3
PS_CA_BP_LINES
PS_INTFC_BI
PS_CA_BILL_PLAN
PS_INTFC_BI

I'm using the sed command:
Code:
sed -n 's/.*\([Pp][Ss]_.*\).*/\1/p' x.x

(x.x = filename containing these strings) but I keep getting the results that look like the following:

PS_CA_BI_FF2_TA3 SET DELETE_ME = 'Y' WHERE PROCESS_INSTANCE
PS_CA_BP_LINES LINE, PS_INTFC_BI BI WHERE
PS_INTFC_BI BI WHERE
PS_CA_BILL_PLAN BP WHERE BP.CONTRACT_NUM
PS_INTFC_BI WHERE INTFC_ID

How do I stop the extract to the end of the word or space after the word? Any suggestions would be appreciated.

# 2  
Old 01-05-2012
Perhaps a dull solution, but you could convert every space to a newline and then use grep:
Code:
cat $filesname | tr " " "^J" | grep "^PS_"

Note, to generate the ^J as a single character, use the key sequence Cntrl-v Cntrl-j
The grep string is just as plain text so it is looking for start of line (the ^) then PS_


Probably not the most efficient way, but it might get you going if your just after a once only hit.



I hope that this helps,
Robin
Liverpool/Blackburn
UK
# 3  
Old 01-05-2012
Code:
 
sed -n 's/ /\n/gp' x.x | sed -n 's/\([Pp][Ss]_.*\)/\1/p'

dc++

Previous Thread | Next Thread
Test Your Knowledge in Computers #683
Difficulty: Medium
According to both NetMarketShare and WikiMedia, Safari has a desktop market share of over 6% in 2019.
True or False?

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

sed - extracting the first word only if match

Hello. from a text file, I want to get only the first word ( before blank ) following code= grep -i -e "WORD1" "/path/to/text/file.txt | sed -n 's/WORD1\+//p' | sed -n 's/code=/\1/p' return an error. sed: -e expression #1, char 12: invalid reference \1 on `s' command's RHSFor debugging... (12 Replies)
Discussion started by: jcdole
12 Replies

3. 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

4. UNIX for Dummies Questions & Answers

Extracting part of a word

I have the code message={TP=2012:09:23:00:00:00:GMT,SD=2012:09:23:00:00:00:GMT,SP=2,FT=CCGT,FG=3605} I want to extract the FG=3605 parts of this. Please help. I am trying to do this using awk or unix. (5 Replies)
Discussion started by: JenniferTopham
5 Replies

5. Shell Programming and Scripting

Problems extracting some information

Hi there! Well, I'm writing a script to obtain certain information about files. Specifically, I want to get the information about those files which last access were in the last 24 hours, so I'm doing something like this: find <directory_name> -atime -1 -printf '%f %a\n' I would also... (4 Replies)
Discussion started by: Skirmish
4 Replies

6. Shell Programming and Scripting

Extracting a word from a variable

Hi Guys, Need you quick assistance on the below, trying to extract a word from a variable i.e. acmi101acmi102acmi103acmi104 When i use the following code awk '{gsub(/cmi102/,"")};1' it leaves a space in the variable, need to get rid of the space that it leaves. Any ideas. the above... (3 Replies)
Discussion started by: eo29
3 Replies

7. Shell Programming and Scripting

extracting sentences that only contain a word

Hi guys Need your help how do I extract sentences with only a word i.e. today is hot hot very humid humid2 Sample output hot (6 Replies)
Discussion started by: jamestan
6 Replies

8. UNIX for Dummies Questions & Answers

extracting sentences that only contain a word

Hi guys Need your help how do I extract sentences with only a word i.e. today is hot hot very humid humid2 Sample output hot very (0 Replies)
Discussion started by: jamestan
0 Replies

9. Shell Programming and Scripting

Problems with extracting information

Hi all, <select name="comp" id="comp" style="width:130px;"> <?php $sqlcomp = mysql_query("SELECT * FROM comp"); while ($redcomp = mysql_fetch_array($sqlcomp)) { extract($redcomp); echo "<option value=\"$comp_id\">comp_name</option>"; } ?> ... (0 Replies)
Discussion started by: c0mrade
0 Replies

10. Shell Programming and Scripting

Extracting from second word

Hi all, I need to extract the Particular string from the whole word,the input file is : 123,345,aaaa,555,....,.... I need all the record from 345 so i need to eliminate the first record. Output: 345,aaa,5555,....,.....,..... Thanks in advance. (3 Replies)
Discussion started by: ithirak17
3 Replies

Featured Tech Videos