Help with pattern match and Extract

Hi All,

I am having a file like below . Basically when SB comes in the text with B. I have to take the word till SB. When there only B I should take take till B. Tried for cut it by demilter but not able to build the logic

SB- CD B_RESTO SB_RESTO CRYSTALS BOILERS -->There SB and B so I should have output as SB- CD B_RESTO 
CONC- BC SB_RESTO CRYSTALS BOILERS--> There is only SB so I should have CONC- BC 
SCT- CQ SB_AO SUBBRANDS SCT_PINK LILAC
GSZ- IW SB_DOWNY NATURE BLENDS GSZ_LESS THAN 30 USES
PRC- CD SB_RESTO CRYSTALS BOILERS
SCT- DK B_METHOD SCT_LAVENDER PLUS CYPRESS --> There is only B so I should have SCT- DK
SCT- DK SB_METHOD AO SB SCT_LAVENDER PLUS CYPRESS--> I have SB and SB so I should have SCT- DK SB_METHOD AO
 

Expected output

SB- CD B_RESTO 
CONC- BC 
SCT- CQ 
GSZ- IW 
PRC- CD 
SCT- DK 
SCT- DK SB_METHOD AO 

What shell and operating system are you using?

What have you tried to solve this problem on your own? Where are you stuck?

Why isn't the output from the second line in your example:

CONC- BC SB_RESTO CRYSTALS BOILERS--> There is only 

There are two occurrences of SB in that line and three additional occurrences of B as well (one before the first SB , one between the two occurrences of SB , and one after the last SB ).

I am using Redhat Linux. In my example I have SB alone so it should be CONC- BC. Things I have tried

cut -d' ' -f1,2,3 test.desc - where test.desc is my file. This will bring me from 2nd segment but I have to get by SB or B

Posting 8 copies of the same partial (and confusing) answer doesn't help. :confused:

I asked what shell and operating system you're using. You have told us what operating system you're using; but not what shell you're using!

The second line of your sample input was:

CONC- BC SB_RESTO CRYSTALS BOILERS--> There is only SB so I should have CONC- BC 

with SB clearly marked in red two times and B (not part of SB ) clearly marked in magenta three other times. I repeat. Please explain why, according to the rules you specified, the output produced from that line of input should not be:

CONC- BC SB_RESTO CRYSTALS BOILERS--> There is only 

Furthermore, the output you say should be produced for the third, fourth, and fifth input lines:

SCT- CQ SB_AO SUBBRANDS SCT_PINK LILAC
GSZ- IW SB_DOWNY NATURE BLENDS GSZ_LESS THAN 30 USES
PRC- CD SB_RESTO CRYSTALS BOILERS

which you said should "take till B " since SB doesn't appear twice says to me that the output should be:

SCT- CQ S
GSZ- IW S
PRC- CD S

since in all three of these cases there is an S in the input before the B that you have not shown in your expected output???

I find it very difficult to help you reach your goal if the output you say you want does not match the description of the output you say you want.

Please clarify your requirements!

2 Likes

I must add that this user never posts his attempts.
He/she just requires someone else to code instead of him.

The search option confirms this.
This is just rude.

Dear arunkumar_mca

Various fairly complex awk solutions provided in past should be start to learn parsing text in unix environments.
Give it shot, try to write something, then come here to improve / rewrite your code using advice from folks here.

Regards
Peasant.

1 Like

I should have said that "_SB" or "_B".
I know it is against the form to post personal comment. @peasant I was trying to do in parallel to see how I can get this in from SQL. I was not being rude here and never . Don't use such comments. The multiple time post is something wrong with either with the form submit or with my enter I tried my max to delete it didnt allowed you can try my edit history I tried to remove all text and try saving it that also didn't work.You guys helped me a lot and not that my task ended there I took it and put in other code and I was working on it. Not something I want you to do my stuff

Is this supposed to help us figure out what you're trying to do?

Why should you have said anything about "_SB" or about "_B"? Neither of those strings appears anywhere in any line of your sample input!

If you're unwilling to answer our questions and are unwilling to give us a clear specification of what you are trying to do, there is very little that we can do to help you. :frowning: