sed to extract all strings

Hi,
I have a text file containing 2 lines as follows:

I'm trying to extract all the strings following an "AME." The output would be as follows:

BUSINESS_UNIT
PROJECT_ID
ACTIVITY_ID
RES_USER1
RESOURCE_ID_FROM
ANALYSIS_TYPE
BI_DISTRIB_STATUS
BUSINESS_UNIT
PROJECT_ID
ACTIVITY_ID
RES_USER1
RESOURCE_ID_FROM
ANALYSIS_TYPE
BI_DISTRIB_STATUS

Tried the following sed:

 
sed -n 's/.*\(AME\.\)\(.*\)/\2/gp' l.l | awk '{print $1}'

But returns only:

BI_DISTRIB_STATUS
BI_DISTRIB_STATUS

Any help would be great as I'm new to HP-UX Korn shell scripting

You are trying to get the first word after

AME.

Will awk do?

awk '{for(i=1;i<=NF;i++){if($i ~ /AME.[A-Z]/){split($i,a,/\./);print a[2]}}}' input_file

--ahamed

1 Like

Correct, I want to extract the first word after the "AME."

---------- Post updated at 03:09 PM ---------- Previous update was at 03:04 PM ----------

Thank you Ahamed101, that works perfect.

An approach using grep that seems to work for the given text:

grep -o "AME\.[[:alnum:]_]*[[:space:]]" file | cut -c 5-
$ sed "s/[^=]*\(AME.[^ ]*\) =/\1 /g;s/AME./\\
/g;s/ *[^ ]* *$//" file

BUSINESS_UNIT
PROJECT_ID

RES_USER1
RESOURCE_ID_FROM

ANALYSIS_TYPE
BI_DISTRIB_STATUS

BUSINESS_UNIT
PROJECT_ID

RES_USER1
RESOURCE_ID_FROM

ANALYSIS_TYPE
BI_DISTRIB_STATUS