Stdout
標準輸出到多個文件,如果標準輸出預設到文件
一、總結
如果預設情況下在 CLI 程序 stdout 到文件中,我找不到,我能做什麼,該文本輸出到多個文件。
2. 例子
我使用generate-changelog包。在這個包中預設輸出列印到文件,而不是控制台。
3. 預期行為
我想將相同的輸出添加到 2 個文件:
SashaVersion.txt
— 文件,我只想在其中添加一次標準輸出;CHANGELOG.md
— 文件,我想在其中多次添加標準輸出;這個文件不是必須覆蓋的。4.沒有幫助
- 雙重使用
-f
參數 -changelog -f SashaVersion.txt -f CHANGELOG.md
。- tee命令,例如 —
changelog -f | tee SashaVersion.txt CHANGELOG.md
。
從您連結到的頁面:
選項:
-f, --file [file]
要寫入的文件,預設為./CHANGELOG.md
,用於-
標準輸出請注意,破折號是一種非常常見的標記標準輸入/標準輸出的方式。
根據該文本,這可能會起作用:
$ changelog -f - | tee SashaVersion.txt CHANGELOG.md
儘管它仍會將輸出的一個副本列印到終端,但其中任何一個都可以禁止:
$ changelog -f - | tee SashaVersion.txt > CHANGELOG.md $ changelog -f - | tee SashaVersion.txt CHANGELOG.md > /dev/null
如果
-f -
不起作用,請嘗試-f /dev/stdout
。當然,如果你正在執行 zsh,你甚至不需要
tee
:zsh$ changelog -f - > SashaVersion.txt > CHANGELOG.md
在所有這些中,如果您希望將新文本附加到文件而不是覆蓋文件,請替換為
>
。如果您希望輸出覆蓋,並附加到標準輸出並寫入標準輸出,您可以執行以下操作:>>``SashaVersion.txt``CHANGELOG.md
$ changelog -f - | tee SashaVersion.txt | tee -a CHANGELOG.md
或與
zsh
:$ changelog -f - >&1 > SashaVersion.txt >> CHANGELOG.md