我有这样的一行:
package:/data/app/com.bskyb.skynews.android-XZdcB7swzPqeBcgUp2P0JQ==/base.apk=com.bskyb.skynews.android
请注意两个“ =”。 “ =”是分隔符,但有时可以有1..n“ =”。
如何使用awk解析,必须为awk,这样我才能获得 1.“ package:”之后的元素,直到并包括LAST“ =”,然后2.在最后一个“ =”之后的元素。
所以使用上面的代码我会得到
/data/app/com.bskyb.skynews.android-XZdcB7swzPqeBcgUp2P0JQ=
/base.apk=com.bskyb.skynews.android
答案 0 :(得分:2)
使用GNU
可以用捕获功能复制sed
替代品。
$ awk '{print gensub(/.*:([^=]+=?)=(.*)/,"\\1\n\\2", 1)}' file
/data/app/com.bskyb.skynews.android-XZdcB7swzPqeBcgUp2P0JQ=
/base.apk=com.bskyb.skynews.android