我有一个包含的文件。
基础文件:
#include "File1.hpp"
#include "Rep/File2.hpp"
我想将这些包含添加到另一个文件(NEW_FILE)中。我编写了一个脚本:
grep "$BASE_FILE" - "#include" | while read -r INC
if ! grep -q "$INC" "$NEW_FILE"
then
sed -i "1s/^/$INC/g" "$NEW_FILE"
fi
done
但是我遇到了错误“错误的s选项”。我不知道我的问题是来自BASE_FILE中的“还是/。
1条答案
按热度按时间ut6juiuv1#
我们可以避免循环和为循环中的每个匹配行运行代价高昂的
grep + sed
。您可以使用
grep
给予新文件中缺少的include行,方法是:一旦你得到这个差异,它是直接向前添加这些行在顶部:
注意,我避免使用全部大写的变量,以避免与shell中保留的环境变量发生潜在冲突。