作为 shell 脚本的一部分,我想替换
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
和
LIBTOOL=./libtool
源代码行号为 528。我尝试使用 sed 如下
sed -e '528 s/LIBTOOL=\'\$(SHELL) \$(top_builddir)\/libtool'/LIBTOOL=.\/libtool/'**
但我收到了一个错误。
因此,任何帮助都将不胜感激。
答案1
您的表达式中还有另一个未转义的单引号(请查看\/libtool'/LIBTOOL
)。因此,以下是对我有用的方法:
sed "528 s/LIBTOOL='\$(SHELL) \$(top_builddir)\/libtool'/LIBTOOL='.\/libtool'/" filename.ext
请注意,我做到了不是包括-e
参数,因为它需要一个文件名来读取它的表达式来自(并且您在命令行提供表达式——不要将此文件与要处理的文件混淆)。