我是sed命令的新手。我正在阅读一些源代码的构建脚本,我在其中发现了这个循环。
for x in '*.la'
do
sed -i -e 's|^\(libdir=.\).*\(/opt/toolchains\)|\1\2|' x
done
我无法理解for循环所做的功能。任何人都可以提供帮助。
答案 0 :(得分:1)
它迭代当前目录中以“.la”结尾的一系列文件,对于找到的每个文件,它使用sed编辑内容以转换表单行:
libdir=X[zero-or-more-chars]/opt/toolchains
(其中X是任何字符)成为表格的行:
libdir=X/opt/toolchains.
换句话说,它正在删除这些行的[零或多个字符]部分。
实际上,这看起来很麻烦,因为我希望sed命令引用$ x,而不是x。我有一种感觉你在复制/粘贴步骤中丢失了$(或者它只是一个bug)。