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