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
joeyg
2
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.
Yoda
5
An approach using grep
that seems to work for the given text:
grep -o "AME\.[[:alnum:]_]*[[:space:]]" file | cut -c 5-
anbu23
6
$ 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