0

I have a file, from which I need to extract words between two patterns

e.g. i need to extract between originatingMessageId

For this input file

userGLN|originatingMessageId0028400000000~20170412194316~1182055~1/originatingMessageId/header|documentException|originatingDocumentId|0028400000000~20170412194316~1182055~1~15~19649/originatingDocumentId|link|operation|DELETE|operation||informationProviderGLN|0028400000000|informationProviderGLN|

the expected output file would be:

0028400000000~20170412194316~1182055~1
Philippos
  • 13,453
Parthi
  • 85
  • echo "userGLN|originatingMessageId0028400000000~20170412194316~1182055~1/originatingMessageId/header|documentException|originatingDocumentId|0028400000000~20170412194316~1182055~1~15~19649/originatingDocumentId|link|operation|DELETE|operation||informationProviderGLN|0028400000000|informationProviderGLN|" |awk -F 'originatingMessageId' '{print $2}' |sed '$ s/.$//' – Emilio Galarraga Apr 14 '17 at 01:16

1 Answers1

1
str='originatingMessageId'

awk -F"/?$str" '$0=$2'

grep -oP "\|${str}\\K.*?(?=/${str})"

sed -e "s|/\{0,1\}$str|\n|;s/.*\n//;s|/\{0,1\}$str|\n|;/\n/P;d"