CHANGELOG.md
내가 원하는 파일이 있다고 가정 해 봅시다.끼워 넣다4행의 명령 출력입니다 generate-changelog
. 다음과 같은 쉘 명령을 사용하여 이를 달성하려면 어떻게 해야 합니까 sed
?
변경해야 할 파일
$ cat CHANGELOG.md
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
# 3.0.0
…
내 주문
$ generate-changelog
# 3.0.1
- fixed some bug
- lots and lots
- of multiline
- output
내가 얻고 싶은 결과 (stdout이 아니라 CHANGELOG.md
직접적으로)
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
# 3.0.1
- fixed some bug
- lots and lots
- of multiline
- output
# 3.0.0
…
기본적으로 표준 입력을 기반으로 이 정적 명령을 생성해야 합니다.끼워 넣다4행의 명령으로 제공되는 임의 콘텐츠:
sed -i "4a\
## [$newTag](https://github.com/$(repo_path)/compare/$(latest_tag)...$newTag) - $(today)" CHANGELOG.md
답변1
최소한 GNU sed를 사용하면 r
특수 파일 이름이 있는 명령을 사용하여 /dev/stdin
표준 입력의 내용을 읽고 루프 끝에 삽입하기 위해 대기열에 넣을 수 있습니다( for 파일과 r
약간 유사 ).a
따라서 generate-changelog
stdout에 쓴다고 가정하면 시도해 볼 수 있습니다.
generate-changelog | sed -i '4r/dev/stdin' CHANGELOG.md