我是 sed 命令的新手。我正在阅读一些源代码的构建脚本,我在其中找到了这个 for 循环。
for x in '*.la'
do
sed -i -e 's|^\(libdir=.\).*\(/opt/toolchains\)|\1\2|' x
done
我无法理解这个 for 循环正在执行的功能。任何人都可以帮忙。
我是 sed 命令的新手。我正在阅读一些源代码的构建脚本,我在其中找到了这个 for 循环。
for x in '*.la'
do
sed -i -e 's|^\(libdir=.\).*\(/opt/toolchains\)|\1\2|' x
done
我无法理解这个 for 循环正在执行的功能。任何人都可以帮忙。
它正在遍历当前目录中以“.la”结尾的一系列文件,并且对于找到的每个文件,它正在使用 sed 编辑内容以转换表单的行:
libdir=X[zero-or-more-chars]/opt/toolchains
(其中 X 是任何字符)转换为以下形式的行:
libdir=X/opt/toolchains.
换句话说,它正在删除这些行的 [zero-or-more-chars] 部分。
实际上,这看起来有问题,因为我希望 sed 命令引用 $x,而不是 x。我有一种感觉,您在复制/粘贴步骤中以某种方式丢失了 $ (或者它可能只是一个错误)。