构建脚本中的sed命令

时间:2012-12-05 07:15:56

标签: bash shell sed build-process

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

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

我无法理解for循环所做的功能。任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:1)

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

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

(其中X是任何字符)成为表格的行:

libdir=X/opt/toolchains. 

换句话说,它正在删除这些行的[零或多个字符]部分。

实际上,这看起来很麻烦,因为我希望sed命令引用$ x,而不是x。我有一种感觉你在复制/粘贴步骤中丢失了$(或者它只是一个bug)。