鉴于这种:
echo AAA | sed -r 's/A/echo B/ge'
Run Code Online (Sandbox Code Playgroud)
我明白了:
Becho Becho B
Run Code Online (Sandbox Code Playgroud)
我原以为我会得到“BBB”。这是 GNU sed 4.2.1 版。发生了什么,我如何使用执行标志,并且在一行上可以进行多次替换(来自 shell,而不是来自 perl 等)?
我习惯于dpkg -S /path/to/file在 Debian 上找出某些东西的来源。~new "everything-in-usr" AKA usrmerge 政策经常打破这一点。仅举个例子:
> dpkg -S /bin/systemd
systemd: /bin/systemd
> readlink -f /bin/systemd
/usr/lib/systemd/systemd
> dpkg -S /usr/lib/systemd/systemd
dpkg-query: no path found matching pattern /usr/lib/systemd/systemd
Run Code Online (Sandbox Code Playgroud)
这很糟糕,因为实际运行的可执行文件是 /usr/lib/systemd/systemd 所以我更有可能想知道在任何给定的dpkg -S. 是否有另一个 usrrerge 感知替代品dpkg -S可以用来轻松可靠地将可执行文件跟踪回其包?