как разобрать с несколькими разделителями - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть такие строки:

package:/data/app/com.bskyb.skynews.android-XZdcB7swzPqeBcgUp2P0JQ==/base.apk=com.bskyb.skynews.android

Обратите внимание на два "="."=" Является разделителем, но иногда может быть 1..n "=".

Как я могу проанализировать с помощью awk, должен быть awk, чтобы я мог получить 1. элемент после "пакета:"до последнего включительно" = "и затем 2. элемент, который следует за последним" = ".

Таким образом, используя выше, я получу

  1. /data/app/com.bskyb.skynews.android-XZdcB7swzPqeBcgUp2P0JQ=
  2. /base.apk=com.bskyb.skynews.android

1 Ответ

0 голосов
/ 07 февраля 2019

с GNU awk вы можете повторить sed заменить с захватом.

$ awk '{print gensub(/.*:([^=]+=?)=(.*)/,"\\1\n\\2", 1)}' file

/data/app/com.bskyb.skynews.android-XZdcB7swzPqeBcgUp2P0JQ=
/base.apk=com.bskyb.skynews.android
...