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