2

strings我知道我可以在下面搜索多个tar

tar -tf $file |  egrep -i 'str1|str2|str3'

这给了我很多我不感兴趣的路径,例如字符串 str1 是bfoa

/data/misc/user/0/info.bfoa.com
/data/app/info.bfoa.com
/data/data/info.bfoa.com

如果 str2 是ubercab

/data/misc/user/0/com.ubercab
    /data/app/com.ubercab
    /data/data/com.ubercab

tar列表中的匹配项。从这些中,我只需要 /data/data/*string*像 /data/data/com.ubercab 这样的模式

我试过了

 tar -tf $file |  egrep -i '/data/data/*str1*|/data/data/*str2*|/data/data/*str3*'

它说

egrep: repetition-operator operand invalid

那么我如何在tar1次grep尝试中在搜索中获得这些东西:
- 搜索列表 search1|search2|search3 - 搜索
应该是-regexes 搜索字符串应该通过路径搜索匹配
- 只希望父目录/data/data/com.ubercab而不是其内容显示

4

1 回答 1

1

我认为您想要 egrep 的正则表达式模式是:

tar tf bundle.tar | egrep -E "/data/data/.*(str1|str2|str3).*"
于 2021-08-08T05:03:27.670 回答