Markdownファイルの目次を動的に生成し、Markdownファイルの先頭に追加しようとしています。
ただし、動的に生成されたTOCには一重引用符または二重引用符を含めることができ、これはsedの実行に失敗します。
sedを使用して動的に生成されたTOCをファイルの先頭に追加する方法はありますか?どのように?
以下は私のスクリプトとエラーメッセージです。
# filename: add_toc.sh
TOC=$(./gh-md-toc $1)
sed -i "1s/^/"$TOC"/" $1
# Execution
./add_toc.sh my_doc.md
sed: -e expression #1, char 5: unterminated `s' command
答え1
ed
代わりに、TOCジェネレータコマンドの出力をテキストとしてファイルに読み込んで解釈不可能にするsed
コマンド!
形式を使用することをお勧めします。r
前任者。 (テストされていません - スクリプトがないため./gh-md-toc
):
ed -s "$1" <<EOF
0r !./gh-md-toc "$1"
wq
EOF