我最近从bash
移到zsh
,我很久以前发现的一个小脚本停止了工作。
该脚本显示了哪些包依赖于指定的包。
comm -12 <(pactree -ru $1 | sort) <(pacman -Qqe | sort) | grep -v ^$1$ | sed 's/^/ /'
经过一段时间的捣乱,我发现它在grep -v ^$1$
时断了。那时候,当我找到脚本时,我试着谷歌搜索它的意思但是没有成功。现在它已经破裂了,我对它的作用以及它的确切运作方式更感兴趣。
所以,问题是,^$1$
是什么意思以及如何让它在zsh
中发挥作用?谢谢!
编辑:
好的,^
和$
是正则表达式,我明白了。 RE是我总是放下的话题,因为它需要大量的空闲时间和学习意愿。问题是,为什么它在zsh
中不起作用,因为它是grep
功能,而shell不应该与它互动。
答案 0 :(得分:0)
我通过在^$1$
周围添加一对双引号来修复它。由于某种原因,bash
完全没有引号,但zsh
根本不喜欢它。修复实际上比我预期的要容易得多,但这只是因为我不知道那是一个正则表达式(谢谢@DevSolar)。
如果有人想让pacman的最终脚本检查哪些包依赖于特定的包,那么它就是
comm -12 <(pactree -ru $1 | sort) <(pacman -Qqe | sort) | grep -v "^$1$" | sed 's/^/ /'
}
在函数或shell脚本中使用它。
编辑:我在@DevSolar建议之前想出了自己的问题,但我仍然非常感谢你的帮助:)