1

我是 sed 命令的新手。我正在阅读一些源代码的构建脚本,我在其中找到了这个 for 循环。

for x in '*.la'    
do    
sed -i -e 's|^\(libdir=.\).*\(/opt/toolchains\)|\1\2|' x    
done

我无法理解这个 for 循环正在执行的功能。任何人都可以帮忙。

4

1 回答 1

1

它正在遍历当前目录中以“.la”结尾的一系列文件,并且对于找到的每个文件,它正在使用 sed 编辑内容以转换表单的行:

libdir=X[zero-or-more-chars]/opt/toolchains 

(其中 X 是任何字符)转换为以下形式的行:

libdir=X/opt/toolchains. 

换句话说,它正在删除这些行的 [zero-or-more-chars] 部分。

实际上,这看起来有问题,因为我希望 sed 命令引用 $x,而不是 x。我有一种感觉,您在复制/粘贴步骤中以某种方式丢失了 $ (或者它可能只是一个错误)。

于 2012-12-05T07:20:24.797 回答