我有一个程序texcount
可以输出 LaTeX 文档中的字数。我还可以将其输出通过sed
管道传递到 TeX 换行符,并将其写入一个文件,然后将其包含在我的最终文档中。但是当我这样做时,texcount foo.tex | sed s/$/'\\\\'/ > wc.tex
命令行输出texcount
被抑制。
如何获取要在终端中显示的第一个命令的输出和通过管道传输到 sed?
答案1
您可以对第二个命令使用匿名管道:
texcount foo.tex | tee >(sed s/$/'\\\\'/ > wc.tex)
答案2
您需要“tee”命令,它允许您分割管道。
texcount foo.tex | tee >output.txt | sed s/$/'\\\\'/ > wc.tex ; cat output.txt
这将为您留下额外的output.txt 文件。阅读本文以获取更多信息:http://www.unixtutorial.org/2007/12/tee-replicate-standard-output/ 你也可以做“man tee”。
答案3
你可以使用相当地道的
texcount foo.tex | tee /dev/tty | sed s/$/'\\\\'/ > wc.tex
/dev/tty
是一个神奇的设备,指的是当前进程的控制终端。