我看过很多关于在文件开头注入single行的帖子。但是,对于将文本块插入到现有文件的开头,我确实没有任何答案。虽然我有a解决方案:
install -bDm 0660 -o root -g root <(
echo "# Set external URL"
printf "external_url = '%s'\n\n" "${EXTERNAL_URL}"
cat <PATH_TO_EXISTING_FILE>
) <PATH_TO_EXISTING_FILE>
这感觉真的很难看。所以,我想知道是否有一些不那么混乱的东西(并且不依赖于将 python/perl/等封装在 bash 脚本中)。
注意:我最终选择了这种方法,因为当你尝试类似的方法时:
(
echo "# Set external URL"
printf "external_url = '%s'\n\n" "${EXTERNAL_URL}"
cat <PATH_TO_EXISTING_FILE>
) <PATH_TO_EXISTING_FILE>
您会收到类似
cat: <PATH_TO_EXISTING_FILE>: input file is output file
的错误。
sed
命令解决这个问题:
sed -i -e "i # Set external URL\nexternal_url = '${EXTERNAL_URL}'\n\n" <PATH_TO_EXISTING_FILE>