gpt4 book ai didi

Android shell 脚本 grep

转载 作者:搜寻专家 更新时间:2023-11-01 08:59:06 24 4
gpt4 key购买 nike

我正在尝试使用 Android shell(带有 Busybox)编写一个脚本来扫描一些 .xml 文件以提取信息,但是,我在一些优化上遇到了困难。

不应该,例如,

(ax)b

匹配到

axbxc

它没有;当我尝试在 Android 上执行此操作时(4.2.2,使用 Busybox 1.20.2,是否重要?)。

echo axbxc > \sdcard\test.txt
grep "(ax)b" \sdcard\test.txt

什么都不返回,而

grep "axb" \sdcard\test.txt

如预期的那样返回,

axbxc

同样,不应该

(?>ax)b

还返回 axbxc 吗? (这是我想要应用的实际优化。)

是什么导致了这个问题?此外,有谁知道 Busybox 使用的是什么正则表达式引擎,以便我可以去专门阅读它?

最佳答案

要在 grep(和 busybox grep)中启用扩展正则表达式,您需要使用 grep -E 或使用 egrep(egrepgrep -E 的快捷方式。

我已经使用 busybox grep 对此进行了测试,这两种方法都按预期工作并且与您的正则表达式匹配。

至于 (?>ax)b - 这只有在您可以使用 grep -P(支持 Perl 兼容的正则表达式)时才有效。但是,busybox grep 不支持此开关,因此先行和后行匹配将不起作用。

关于Android shell 脚本 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16727951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com